This checks the return values of strdup() calls in tcpdrop(8). OK?
Index: tcpdrop.c =================================================================== RCS file: /cvs/src/usr.sbin/tcpdrop/tcpdrop.c,v retrieving revision 1.12 diff -u -p -r1.12 tcpdrop.c --- tcpdrop.c 24 Oct 2013 02:55:50 -0000 1.12 +++ tcpdrop.c 9 Jan 2014 22:50:43 -0000 @@ -54,6 +54,8 @@ main(int argc, char **argv) if (argc == 3) { laddr1 = addr1 = strdup(argv[1]); + if (!addr1) + err(1, "strdup"); port1 = strrchr(addr1, ':'); if (port1) *port1++ = '\0'; @@ -61,6 +63,8 @@ main(int argc, char **argv) goto fail; faddr2 = addr2 = strdup(argv[2]); + if (!addr2) + err(1, "strdup"); port2 = strrchr(addr2, ':'); if (port2) *port2++ = '\0'; @@ -84,11 +88,15 @@ fail: if (addr1[0] == '[' && addr1[strlen(addr1) - 1] == ']') { laddr1 = strdup(addr1); + if (!laddr1) + err(1, "strdup"); laddr1[strlen(laddr1) - 1] = '\0'; laddr1++; } if (addr2[0] == '[' && addr2[strlen(addr2) - 1] == ']') { faddr2 = strdup(addr2); + if (!faddr2) + err(1, "strdup"); faddr2[strlen(faddr2) - 1] = '\0'; faddr2++; }