Author: jilles Date: Wed Dec 29 21:38:00 2010 New Revision: 216809 URL: http://svn.freebsd.org/changeset/base/216809
Log: printf: Do not use sh memory functions in sh builtin. These functions throw exceptions if they fail, possibly causing memory leaks. The normal out-of-memory handling suffices. The INTOFF around almost all of printf prevents memory leaks due to SIGINT. Modified: head/usr.bin/printf/printf.c Modified: head/usr.bin/printf/printf.c ============================================================================== --- head/usr.bin/printf/printf.c Wed Dec 29 21:04:10 2010 (r216808) +++ head/usr.bin/printf/printf.c Wed Dec 29 21:38:00 2010 (r216809) @@ -58,7 +58,6 @@ static const char rcsid[] = #ifdef SHELL #define main printfcmd #include "bltin/bltin.h" -#include "memalloc.h" #include "error.h" #endif @@ -256,11 +255,7 @@ printf_doformat(char *start, int *rval) char *p; int getout; -#ifdef SHELL - p = savestr(getstr()); -#else p = strdup(getstr()); -#endif if (p == NULL) { warnx("%s", strerror(ENOMEM)); return (NULL); @@ -269,11 +264,7 @@ printf_doformat(char *start, int *rval) *(fmt - 1) = 's'; PF(start, p); *(fmt - 1) = 'b'; -#ifdef SHELL - ckfree(p); -#else free(p); -#endif if (getout) return (fmt); break; @@ -342,11 +333,7 @@ mknum(char *str, char ch) len = strlen(str) + 2; if (len > copy_size) { newlen = ((len + 1023) >> 10) << 10; -#ifdef SHELL - if ((newcopy = ckrealloc(copy, newlen)) == NULL) -#else if ((newcopy = realloc(copy, newlen)) == NULL) -#endif { warnx("%s", strerror(ENOMEM)); return (NULL); _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"