1
0
mirror of https://github.com/irssi/irssi.git synced 2024-09-15 04:28:09 -04:00
Commit Graph

44 Commits

Author SHA1 Message Date
ailin-nemui
cc17837a9b disable variable arguments code 2018-01-03 15:51:51 +01:00
dequis
632b0ce5e6 Add parse_uint function to improve integer overflow handling
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.
2017-05-18 00:21:11 -03:00
LemonBoy
7a3c6fe86c Replace strarray_length with g_strv_length 2016-06-05 16:24:55 +02:00
Xavier G
f1b5b515b9 Make get_alignment() available outside special-vars.c 2016-05-13 03:51:48 +02:00
Xavier G
97a4ee78fd get_alignment: handle UTF-8 strings.
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-13 03:42:56 +02:00
Xavier G
09ca3ad48f Fix indentation of display_sorted_nicks().
This was done assuming an "indent with tab, align with spaces" approach.
get_alignment also benefited from a minor indentation fix.
2016-05-13 03:31:23 +02:00
Alexander Færøy
daf6adc0b0 Remove warnings about uninitialized variables.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5140 dbcabf3a-b0e7-0310-adc4-f8d773084564
2010-04-04 12:19:54 +00:00
Emanuele Giaquinta
ffe5bd6930 Remove trailing whitespace.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4705 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-02-04 15:30:38 +00:00
Emanuele Giaquinta
c235c679cc Remove code duplication.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4493 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-14 21:22:41 +00:00
Wouter Coekaerts
9c2d621cc6 Oops. Update address correctly now.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4490 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-08 18:41:10 +00:00
Wouter Coekaerts
023026e12b Update FSF address
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4489 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-08 18:16:58 +00:00
Timo Sirainen
71442509d0 Fixed some "buffer overflow" alerts when playing with buggy /EVAL values.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2984 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-11-05 13:10:58 +00:00
Timo Sirainen
d58e119a98 Exported expando interface to perl. Fix for statusbar deinit.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2975 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-10-27 22:30:41 +00:00
Timo Sirainen
bd00ff54c2 Fixed one error and several warnings with GLIB 2.0
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2663 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-04-10 02:53:06 +00:00
Timo Sirainen
490e411814 Don't crash if special vars line ends with '$'.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2488 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-02-17 09:37:23 +00:00
Timo Sirainen
82b0c081e2 Server referencing in /EVAL really should have checked if the server wasn't
NULL :)


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2387 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-02-03 23:14:22 +00:00
Timo Sirainen
6ea882f893 Added missing #include
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2382 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-02-03 19:24:51 +00:00
Timo Sirainen
e8957938ea A bit more safer now to use /EVAL with a command that disconnects from
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-02-03 18:32:46 +00:00
Timo Sirainen
f4897860b5 toupper(), tolower(), isspace(), is..etc..() aren't safe with chars in some
systems, use our own is_...() functions now instead.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2348 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-01-27 20:45:59 +00:00
Timo Sirainen
5dfe5f8a5d $!xx! history search didn't work because history_func() got also the
trailing '!' character.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2213 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-12-07 19:45:47 +00:00
Timo Sirainen
879702897b eval_special_string() : spaces are now ignored after ';' separator (so
/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-19 22:44:04 +00:00
Timo Sirainen
55137fa30d get_argument() - allow arglist to be NULL, just assume that there's no
arguments then.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2083 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-19 14:17:16 +00:00
Timo Sirainen
905a5127f4 if \x isn't a known escape sequence, it should print just x, not \x.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1887 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-21 18:58:09 +00:00
Timo Sirainen
476b5ec863 $~ crashed if arglist was empty
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1858 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-20 11:30:24 +00:00
Timo Sirainen
26d84e25ab added expando_get_signals() and special_vars_get_signals() to return list
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-23 17:32:05 +00:00
Timo Sirainen
82ce76100c s/PARAM_FLAGS_ONLY_PARAMS/PARAM_FLAG_ONLY_ARGS/ since they're called
arguments everywhere :)


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1804 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-09-20 16:44:22 +00:00
Timo Sirainen
1b42f89ccb $*, $~ and $-n should still work with PARAM_FLAG_ONLY_PARAMS.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1803 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-09-20 16:43:24 +00:00
Timo Sirainen
7814192f03 special vars: added PARSE_FLAG_ONLY_PARAMS. Theme loading now uses it so
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-09-20 15:58:14 +00:00
Timo Sirainen
98b82723a1 Added function expand_escapes() which handles now escaping /EVAL and input
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-08-08 20:00:25 +00:00
Timo Sirainen
8b733e0568 special-vars: added flag PARSE_FLAG_ESCAPE_THEME to escape { and } chars
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-06-26 15:33:07 +00:00
Timo Sirainen
d4558de232 /SET prompt - if target had %c or something in it, it shouldn't be
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-03-03 21:34:06 +00:00
Timo Sirainen
1698500f80 $[.10]var truncates the var to 10 chars, but doesn't pad if var is
shorter than 10 chars


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1105 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-01-12 17:05:05 +00:00
Timo Sirainen
bbc33bff5e /SET prompt, /SET prompt_window - Specifies the text in prompt.
'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-17 07:39:22 +00:00
Timo Sirainen
210409bc0b '_' character wasn't treated as acceptable $variable_name character.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@986 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-12-10 05:11:36 +00:00
Timo Sirainen
d1eaeca255 Split expandos from special-vars.c to expandos.c. Added list of signals
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-12-05 00:53:04 +00:00
Timo Sirainen
a01275959d cmd_options_get_server() : allow NULL cmd argument
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-11-30 22:58:45 +00:00
Timo Sirainen
df10f182c0 Some fixes for compiling with Win32 :)
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@783 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-10-26 18:12:20 +00:00
Timo Sirainen
e395e87ded Lots of moving stuff around - hopefully I didn't break too much :)
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@632 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-08-26 15:39:44 +00:00
Timo Sirainen
aec85e1dbd uname() return value checking fixes.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@508 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-07-22 19:14:57 +00:00
Timo Sirainen
c2397475c5 Cleaned up code.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@480 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-07-16 20:18:05 +00:00
Timo Sirainen
919abb2c6f /EVAL will now expand \n and \t to newline and tab.
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-06-11 22:58:17 +00:00
Timo Sirainen
2440a5b0b6 Unline glib.h tells, g_getenv() doesn't return newly allocated string
after all..


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@239 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-05-25 13:54:43 +00:00
Timo Sirainen
93d6032151 - Compiling fixes
- 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-05-09 11:42:42 +00:00
Timo Sirainen
c95034c6de ..adding new files..
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@171 dbcabf3a-b0e7-0310-adc4-f8d773084564
2000-04-26 08:03:38 +00:00