diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-05-11 22:29:47 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-05-11 22:29:47 +0200 |
commit | 7388792a124756a528666cb5c375ee919db9ca11 (patch) | |
tree | cdd61a80aff4b094a2c4f3bdfaa7637abdbead9c /sys/src/cmd/tcs/conv_jis.c | |
parent | 14cd6df332475cb6535b638104283ab12ae609c6 (diff) |
tcs: prevent accidents with runes beyond 16-bit
Diffstat (limited to 'sys/src/cmd/tcs/conv_jis.c')
-rw-r--r-- | sys/src/cmd/tcs/conv_jis.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/src/cmd/tcs/conv_jis.c b/sys/src/cmd/tcs/conv_jis.c index 862751411..61d0aa046 100644 --- a/sys/src/cmd/tcs/conv_jis.c +++ b/sys/src/cmd/tcs/conv_jis.c @@ -438,7 +438,7 @@ jisjis_out(Rune *base, int n, long *notused) } *p++ = r; } else { - if(tab[r] != -1){ + if(r < NRUNE && tab[r] != -1){ if(state != jp2022){ *p++ = ESC; *p++ = '$'; *p++ = 'B'; state = jp2022; @@ -478,7 +478,7 @@ msjis_out(Rune *base, int n, long *notused) if(r < 128) *p++ = r; else { - if(tab[r] != -1){ + if(r < NRUNE && tab[r] != -1){ hi = tab[r]/100 + ' '; lo = tab[r]%100 + ' '; J2S(hi, lo); @@ -517,7 +517,7 @@ ujis_out(Rune *base, int n, long *notused) if(r < 128) *p++ = r; else { - if(tab[r] != -1){ + if(r < NRUNE && tab[r] != -1){ *p++ = 0x80 | (tab[r]/100 + ' '); *p++ = 0x80 | (tab[r]%100 + ' '); continue; |