=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/jot/jot.c,v retrieving revision 1.38 retrieving revision 1.39 diff -c -r1.38 -r1.39 *** src/usr.bin/jot/jot.c 2017/12/15 13:04:11 1.38 --- src/usr.bin/jot/jot.c 2017/12/15 14:20:52 1.39 *************** *** 1,4 **** ! /* $OpenBSD: jot.c,v 1.38 2017/12/15 13:04:11 tb Exp $ */ /* $NetBSD: jot.c,v 1.3 1994/12/02 20:29:43 pk Exp $ */ /*- --- 1,4 ---- ! /* $OpenBSD: jot.c,v 1.39 2017/12/15 14:20:52 tb Exp $ */ /* $NetBSD: jot.c,v 1.3 1994/12/02 20:29:43 pk Exp $ */ /*- *************** *** 379,388 **** errx(1, "-w word too long"); intdata = true; } else if (*(p+1) == '\0') { - if (sz <= 0) - errx(1, "-w word too long"); /* cannot end in single '%' */ ! strlcat(format, "%", sizeof format); } else { /* * Allow conversion format specifiers of the form --- 379,387 ---- errx(1, "-w word too long"); intdata = true; } else if (*(p+1) == '\0') { /* cannot end in single '%' */ ! if (strlcat(format, "%", sizeof(format)) >= sizeof(format)) ! errx(1, "-w word too long"); } else { /* * Allow conversion format specifiers of the form *************** *** 459,465 **** else if (*p == '%' && *(p+1) == '%') p++; else if (*p == '%' && *(p+1) == '\0') { ! strlcat(format, "%", sizeof format); break; } } --- 458,467 ---- else if (*p == '%' && *(p+1) == '%') p++; else if (*p == '%' && *(p+1) == '\0') { ! /* cannot end in single '%' */ ! if (strlcat(format, "%", sizeof(format)) >= ! sizeof(format)) ! errx(1, "-w word too long"); break; } }