summaryrefslogtreecommitdiff
path: root/src/core/special-vars.c
AgeCommit message (Collapse)Author
2017-05-18Add parse_uint function to improve integer overflow handlingdequis
Originally found by oss-fuzz (issue 525) in get_ansi_color using ubsan. After a lot of analysis I'm 99% sure this isn't security relevant so it's fine to handle this publicly. The fix is mainly adding a function that does it right and use it everywhere. This is harder than it seems because the strtol() family of functions doesn't have the friendliest of interfaces. Aside from get_ansi_color(), there were other pieces of code that used the same (out*10+(*in-'0')) pattern, like the parse_size() and parse_time_interval() functions, which are mostly used for settings. Those are interesting cases, since they multiply the parsed number (resulting in more overflows) and they write to a signed integer parameter (which can accidentally make the uints negative without UB) Thanks to Pascal Cuoq for enlightening me about the undefined behavior of parse_size (and, in particular, the implementation-defined behavior of one of the WIP versions of this commit, where something like signed integer overflow happened, but it was legal). Also for writing tis-interpreter, which is better than ubsan to verify these things.
2016-06-05Replace strarray_length with g_strv_lengthLemonBoy
2016-05-13Make get_alignment() available outside special-vars.cXavier G
2016-05-13get_alignment: handle UTF-8 strings.Xavier G
get_alignment now works with columns (width), not bytes, although it is liable to work with bytes if the given text is not a valid UTF-8 string.
2016-05-13Fix indentation of display_sorted_nicks().Xavier G
This was done assuming an "indent with tab, align with spaces" approach. get_alignment also benefited from a minor indentation fix.
2010-04-04Remove warnings about uninitialized variables.Alexander Færøy
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5140 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-02-04Remove trailing whitespace.Emanuele Giaquinta
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4705 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-14Remove code duplication.Emanuele Giaquinta
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4493 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-08Oops. Update address correctly now.Wouter Coekaerts
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4490 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-08Update FSF addressWouter Coekaerts
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4489 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-11-05Fixed some "buffer overflow" alerts when playing with buggy /EVAL values.Timo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2984 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-10-27Exported expando interface to perl. Fix for statusbar deinit.Timo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2975 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-04-10Fixed one error and several warnings with GLIB 2.0Timo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2663 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-02-17Don't crash if special vars line ends with '$'.Timo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2488 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-02-03Server referencing in /EVAL really should have checked if the server wasn'tTimo Sirainen
NULL :) git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2387 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-02-03Added missing #includeTimo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2382 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-02-03A bit more safer now to use /EVAL with a command that disconnects fromTimo Sirainen
server.. Also added a FIXME: window item would need reference counting as well, eg. "/EVAL win close;say hello" wouldn't work now.. But that's probably job for the rewrite irssi. don't go use things like that :) git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2381 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-01-27toupper(), tolower(), isspace(), is..etc..() aren't safe with chars in someTimo Sirainen
systems, use our own is_...() functions now instead. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2348 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-12-07$!xx! history search didn't work because history_func() got also theTimo Sirainen
trailing '!' character. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2213 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-19eval_special_string() : spaces are now ignored after ';' separator (soTimo Sirainen
/alias echo foo; echo bar works properly). Also if there was any empty commands they're now ignored. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2105 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-19get_argument() - allow arglist to be NULL, just assume that there's noTimo Sirainen
arguments then. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2083 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-21if \x isn't a known escape sequence, it should print just x, not \x.Timo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1887 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-20$~ crashed if arglist was emptyTimo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1858 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-09-23added expando_get_signals() and special_vars_get_signals() to return listTimo Sirainen
of signals the expandos use. Also added "time changed" signal which gets emitted when $Z changes. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1814 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-09-20s/PARAM_FLAGS_ONLY_PARAMS/PARAM_FLAG_ONLY_ARGS/ since they're calledTimo Sirainen
arguments everywhere :) git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1804 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-09-20$*, $~ and $-n should still work with PARAM_FLAG_ONLY_PARAMS.Timo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1803 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-09-20special vars: added PARSE_FLAG_ONLY_PARAMS. Theme loading now uses it soTimo Sirainen
you can use $C etc. in themes to print the active channel. printformat() also expands it now correctly to the server/target where the message was printed, not to the active window's server/target. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1802 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-08-08Added function expand_escapes() which handles now escaping /EVAL and inputTimo Sirainen
line if /SET expand_escapes is set. Supported escapes are \t, \r, \n, \e (ESC), \x (HEX, \x1b), \c (CTRL char, \cA), \000 (octal, \033) git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1727 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-06-26special-vars: added flag PARSE_FLAG_ESCAPE_THEME to escape { and } charsTimo Sirainen
with % char. Used this with statusbar items - now for example "{error xxx}" topic won't print it with error color. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1564 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-03-03/SET prompt - if target had %c or something in it, it shouldn't beTimo Sirainen
treated as color code. So color codes can now be used in /SET prompt string itself, but in none of the $variables it uses. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1324 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-01-12$[.10]var truncates the var to 10 chars, but doesn't pad if var isTimo Sirainen
shorter than 10 chars git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1105 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-12-17/SET prompt, /SET prompt_window - Specifies the text in prompt.Timo Sirainen
'prompt' is used when channel or query is active in window and 'prompt_window' is used with empty windows. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1005 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-12-10'_' character wasn't treated as acceptable $variable_name character.Timo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@986 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-12-05Split expandos from special-vars.c to expandos.c. Added list of signalsTimo Sirainen
to each expando that can might change it's value. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@964 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-11-30cmd_options_get_server() : allow NULL cmd argumentTimo Sirainen
eval_special_string() : if any of the commands separated with ; used the arguments ($0, $1, etc.) don't anymore append all the arguments after other commands. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@903 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-10-26Some fixes for compiling with Win32 :)Timo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@783 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-08-26Lots of moving stuff around - hopefully I didn't break too much :)Timo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@632 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-07-22uname() return value checking fixes.Timo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@508 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-07-16Cleaned up code.Timo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@480 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-06-11/EVAL will now expand \n and \t to newline and tab.Timo Sirainen
If you /SET expand_escapes ON and type \n or \t to text line, they will be expanded. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@326 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-05-25Unline glib.h tells, g_getenv() doesn't return newly allocated stringTimo Sirainen
after all.. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@239 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-05-09- Compiling fixesTimo Sirainen
- GNOME version isn't anymore build here so you don't need all that GTK and GNOME crap to compile irssi-text. - Some fixes to compile with -ansi -pedantic git-svn-id: http://svn.irssi.org/repos/irssi/trunk@200 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-04-26..adding new files..Timo Sirainen
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@171 dbcabf3a-b0e7-0310-adc4-f8d773084564