=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/hexdump/parse.c,v retrieving revision 1.21 retrieving revision 1.22 diff -c -r1.21 -r1.22 *** src/usr.bin/hexdump/parse.c 2016/08/24 03:13:45 1.21 --- src/usr.bin/hexdump/parse.c 2016/09/04 16:41:43 1.22 *************** *** 1,4 **** ! /* $OpenBSD: parse.c,v 1.21 2016/08/24 03:13:45 guenther Exp $ */ /* $NetBSD: parse.c,v 1.12 2001/12/07 13:37:39 bjh21 Exp $ */ /* --- 1,4 ---- ! /* $OpenBSD: parse.c,v 1.22 2016/09/04 16:41:43 tb Exp $ */ /* $NetBSD: parse.c,v 1.12 2001/12/07 13:37:39 bjh21 Exp $ */ /* *************** *** 147,154 **** for (savep = ++p; *p != '"';) if (*p++ == 0) badfmt(fmt); ! tfu->fmt = strndup(savep, p - savep); ! if (tfu->fmt == NULL) err(1, NULL); escape(tfu->fmt); p++; --- 147,153 ---- for (savep = ++p; *p != '"';) if (*p++ == 0) badfmt(fmt); ! if ((tfu->fmt = strndup(savep, p - savep)) == NULL) err(1, NULL); escape(tfu->fmt); p++; *************** *** 219,225 **** char *p1, *p2; char savech, *fmtp, cs[4]; int nconv, prec; - size_t len; nextpr = NULL; prec = 0; --- 218,223 ---- *************** *** 408,417 **** */ savech = *p2; p1[0] = '\0'; ! len = strlen(fmtp) + strlen(cs) + 1; ! if ((pr->fmt = calloc(1, len)) == NULL) err(1, NULL); - snprintf(pr->fmt, len, "%s%s", fmtp, cs); *p2 = savech; pr->cchar = pr->fmt + (p1 - fmtp); fmtp = p2; --- 406,413 ---- */ savech = *p2; p1[0] = '\0'; ! if (asprintf(&pr->fmt, "%s%s", fmtp, cs) == -1) err(1, NULL); *p2 = savech; pr->cchar = pr->fmt + (p1 - fmtp); fmtp = p2;