Fix segmentation fault in tr(1) with -dc and one set

This commit is contained in:
FRIGN 2015-02-02 17:57:46 +01:00
parent fdcfbba96c
commit f9d9672326

11
tr.c
View File

@ -208,8 +208,12 @@ read:
off1 = off2 = 0; off1 = off2 = 0;
for (i = 0; i < set1ranges; i++) { for (i = 0; i < set1ranges; i++) {
if (set1[i].start <= r && r <= set1[i].end) { if (set1[i].start <= r && r <= set1[i].end) {
if (dflag && !cflag) if (dflag) {
if (cflag)
goto write;
else
goto read; goto read;
}
if (sflag) { if (sflag) {
if (r == lastrune) if (r == lastrune)
goto read; goto read;
@ -237,7 +241,10 @@ read:
} }
} }
if (set1check && set1check((wint_t)r)) { if (set1check && set1check((wint_t)r)) {
if (dflag && !cflag) if (dflag)
if (cflag)
goto write;
else
goto read; goto read;
if (sflag) { if (sflag) {
if (r == lastrune) if (r == lastrune)