=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/hexdump/parse.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -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 +1,4 @@ -/* $OpenBSD: parse.c,v 1.21 2016/08/24 03:13:45 guenther Exp $ */ +/* $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,8 +147,7 @@ for (savep = ++p; *p != '"';) if (*p++ == 0) badfmt(fmt); - tfu->fmt = strndup(savep, p - savep); - if (tfu->fmt == NULL) + if ((tfu->fmt = strndup(savep, p - savep)) == NULL) err(1, NULL); escape(tfu->fmt); p++; @@ -219,7 +218,6 @@ char *p1, *p2; char savech, *fmtp, cs[4]; int nconv, prec; - size_t len; nextpr = NULL; prec = 0; @@ -408,10 +406,8 @@ */ savech = *p2; p1[0] = '\0'; - len = strlen(fmtp) + strlen(cs) + 1; - if ((pr->fmt = calloc(1, len)) == NULL) + if (asprintf(&pr->fmt, "%s%s", fmtp, cs) == -1) err(1, NULL); - snprintf(pr->fmt, len, "%s%s", fmtp, cs); *p2 = savech; pr->cchar = pr->fmt + (p1 - fmtp); fmtp = p2;