diff options
| author | Peter Hofmann <scm@uninformativ.de> | 2023-10-07 07:39:00 +0200 | 
|---|---|---|
| committer | Hiltjo Posthuma <hiltjo@codemadness.org> | 2023-10-07 12:16:59 +0200 | 
| commit | a6bbc0c96b0a1db804061b0db79101c6b26aec57 (patch) | |
| tree | dae05a1ddf976cf829441f717ff493e9d256abfe | |
| parent | eb3b894f4076f2b25afc644a1f444b5cbd96aae8 (diff) | |
| download | st-a6bbc0c96b0a1db804061b0db79101c6b26aec57.tar.xz st-a6bbc0c96b0a1db804061b0db79101c6b26aec57.zip  | |
Fix bounds checks of dc.col
dc.collen is the length of dc.col, not the maximum index, hence if x is
equal to dc.collen, then it's an error.
With config.def.h, the last valid index is 259, so this correctly
reports "black":
    $ printf '\033]4;259;?\e\\'
260 is an invalid index and this reports garbage instead of printing an
error:
    $ printf '\033]4;260;?\e\\'
| -rw-r--r-- | x.c | 4 | 
1 files changed, 2 insertions, 2 deletions
@@ -818,7 +818,7 @@ xloadcols(void)  int  xgetcolor(int x, unsigned char *r, unsigned char *g, unsigned char *b)  { -	if (!BETWEEN(x, 0, dc.collen)) +	if (!BETWEEN(x, 0, dc.collen - 1))  		return 1;  	*r = dc.col[x].color.red >> 8; @@ -833,7 +833,7 @@ xsetcolorname(int x, const char *name)  {  	Color ncolor; -	if (!BETWEEN(x, 0, dc.collen)) +	if (!BETWEEN(x, 0, dc.collen - 1))  		return 1;  	if (!xloadcolor(x, name, &ncolor))  | 
