Fix 2 bugs introduced by previous.
authormartijn <martijn@openbsd.org>
Tue, 12 Dec 2017 12:52:01 +0000 (12:52 +0000)
committermartijn <martijn@openbsd.org>
Tue, 12 Dec 2017 12:52:01 +0000 (12:52 +0000)
Pointed out by kshe59 <at> zoho <dot> eu

OK millert@

usr.bin/sed/compile.c

index c7a69f8..113adf6 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: compile.c,v 1.44 2017/12/11 13:25:57 martijn Exp $    */
+/*     $OpenBSD: compile.c,v 1.45 2017/12/12 12:52:01 martijn Exp $    */
 
 /*-
  * Copyright (c) 1992 Diomidis Spinellis.
@@ -603,7 +603,7 @@ static char *
 compile_tr(char *old, char **transtab)
 {
        int i;
-       char delimiter, check[UCHAR_MAX];
+       char delimiter, check[UCHAR_MAX + 1];
        char *new, *end;
 
        memset(check, 0, sizeof(check));
@@ -652,7 +652,7 @@ compile_tr(char *old, char **transtab)
                if (check[*old] == 1)
                        error(COMPILE, "Repeated character in source string");
                check[*old] = 1;
-               (*transtab)[*old++] = *new++;
+               (*transtab)[(u_char) *old++] = *new++;
        }
        if (*old != '\0' || *new != '\0')
                error(COMPILE, "transform strings are not the same length");