view pixmaps/tb_save_session.xpm @ 34320:9d07f1036a69 v9.1.0094

patch 9.1.0094: xxd: buffer-overflow when writing color output Commit: https://github.com/vim/vim/commit/00221487731ea1868c57259c7aa0eb713cd7ade7 Author: Goffredo Baroncelli <kreijack@inwind.it> Date: Sat Feb 10 13:31:06 2024 +0100 patch 9.1.0094: xxd: buffer-overflow when writing color output Problem: xxd: buffer-overflow when writing color output Solution: properly account for the color escape sequences and adjust LLEN macro (Goffredo Baroncelli) xxd: crash with higer number of column xxd writes the data into a buffer before printing. Unfortunately the buffer doesn't consider the space consumed by the escape sequences used to change the color of the character. BEFORE: $ xxd -Ralways -c 256 /etc/passwd Segmentation fault (core dumped) AFTER: $ ./xxd -Ralways -c 256 /etc/passwd 00000000: 726f 6f74 3a78 3a30 3a30 3a72 6f6f 743a 2f72 [...] To solve this issue I had to increase the size of the buffer considering for each byte of data 11 further characters for the color escape sequence. closes: #14003 Signed-off-by: Goffredo Baroncelli <kreijack@libero.it> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sat, 10 Feb 2024 13:45:03 +0100
parents 3fc0f57ecb91
children
line wrap: on
line source

/* XPM */
static char * tb_save_session_xpm[] = {
/* width height ncolors cpp [x_hot y_hot] */
"18 18 9 1 0 0",
/* colors */
" 	s none	m none	c none",
".	m black	c #880000",
"X	s iconColor3	m black	c #FF0000",
"o	s iconColor1	m black	c #000000",
"O	s iconColor2	m none	c #FFFFFF",
"+	s iconGray2	m none	c #bdbdbd",
"@	s iconGray5	m black	c #737373",
"#	s iconGray4	m none	c #949494",
"$	s bottomShadowColor	m black	c #5D6069",
/* pixels */
"       ....       ",
"       .XX.       ",
"       .XX.       ",
"       .XX.       ",
"     ...XX...     ",
"      .XXXX.      ",
"       .XX.       ",
"        ..        ",
"   ooooooooooooo  ",
"  oOOOOOOOOOO++@o ",
" oOOOOOOOOOOOO#@o ",
" oO+++++++++XX#@o ",
" oO+++++++++++#@o ",
" oOoooooooooo+#@o$",
" oOOOOOOOOOOO+#@o$",
" o+###########@o$ ",
"  ooooooooooooo$  ",
"    $$$$$$$$$$$   "};