=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/less/charset.c,v retrieving revision 1.19 retrieving revision 1.20 diff -c -r1.19 -r1.20 *** src/usr.bin/less/charset.c 2016/09/17 15:06:41 1.19 --- src/usr.bin/less/charset.c 2017/01/04 16:27:01 1.20 *************** *** 37,43 **** if (*s == '*') { /* skip leading attribute if there */ s++; ! if (strchr("dksu", *s) == NULL) { return (-1); } s++; --- 37,43 ---- if (*s == '*') { /* skip leading attribute if there */ s++; ! if (*s == '\0' || strchr("dksu", *s) == NULL) { return (-1); } s++; *************** *** 57,63 **** if (seen) { return (-1); /* 2nd % format item! */ } ! while (strchr(" '+-0#", *s) != NULL) { /* skip flags */ s++; } while (isdigit(*s)) { /* skip width */ --- 57,64 ---- if (seen) { return (-1); /* 2nd % format item! */ } ! /* skip flags */ ! while (*s != '\0' && strchr(" '+-0#", *s) != NULL) { s++; } while (isdigit(*s)) { /* skip width */ *************** *** 78,84 **** s++; } ! if (strchr("cCdiouxX", *s) == NULL) { /* bad or evil format character (%s, %n, etc.) */ return (-1); } --- 79,85 ---- s++; } ! if (*s == '\0' || strchr("cCdiouxX", *s) == NULL) { /* bad or evil format character (%s, %n, etc.) */ return (-1); }