From f9d9672326d2b754833151c624b90fde9b06c817 Mon Sep 17 00:00:00 2001 From: FRIGN Date: Mon, 2 Feb 2015 17:57:46 +0100 Subject: [PATCH] Fix segmentation fault in tr(1) with -dc and one set --- tr.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tr.c b/tr.c index 2ac5bd1..352a862 100644 --- a/tr.c +++ b/tr.c @@ -208,8 +208,12 @@ read: off1 = off2 = 0; for (i = 0; i < set1ranges; i++) { if (set1[i].start <= r && r <= set1[i].end) { - if (dflag && !cflag) - goto read; + if (dflag) { + if (cflag) + goto write; + else + goto read; + } if (sflag) { if (r == lastrune) goto read; @@ -237,8 +241,11 @@ read: } } if (set1check && set1check((wint_t)r)) { - if (dflag && !cflag) - goto read; + if (dflag) + if (cflag) + goto write; + else + goto read; if (sflag) { if (r == lastrune) goto read;