=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/file/magic-test.c,v retrieving revision 1.8 retrieving revision 1.9 diff -c -r1.8 -r1.9 *** src/usr.bin/file/magic-test.c 2015/08/11 22:18:43 1.8 --- src/usr.bin/file/magic-test.c 2015/08/11 22:48:09 1.9 *************** *** 1,4 **** ! /* $OpenBSD: magic-test.c,v 1.8 2015/08/11 22:18:43 nicm Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: magic-test.c,v 1.9 2015/08/11 22:48:09 nicm Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott *************** *** 621,629 **** static int magic_test_type_pstring(struct magic_line *ml, struct magic_state *ms) { ! const char *s; size_t slen; int result; s = ms->base + ms->offset; if (ms->size - ms->offset < 1) --- 621,642 ---- static int magic_test_type_pstring(struct magic_line *ml, struct magic_state *ms) { ! const char *s, *cp; size_t slen; int result; + + cp = &ml->type_string[(sizeof "pstring") - 1]; + if (*cp != '\0') { + if (*cp != '/') + return (-1); + cp++; + for (; *cp != '\0'; cp++) { + switch (*cp) { + default: + return (-1); + } + } + } s = ms->base + ms->offset; if (ms->size - ms->offset < 1)