summaryrefslogtreecommitdiffstats
path: root/usr.bin/printf
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2010-12-29 21:38:00 +0000
committerjilles <jilles@FreeBSD.org>2010-12-29 21:38:00 +0000
commit9af03ea4fc729f0a666186052c3a2a6bedc431ca (patch)
tree034d528fcbbbed78655f6952a94e69c9468e5dd2 /usr.bin/printf
parentcc9b2308bc4a85b076312580e276d17723fb67ea (diff)
downloadFreeBSD-src-9af03ea4fc729f0a666186052c3a2a6bedc431ca.zip
FreeBSD-src-9af03ea4fc729f0a666186052c3a2a6bedc431ca.tar.gz
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.
Diffstat (limited to 'usr.bin/printf')
-rw-r--r--usr.bin/printf/printf.c13
1 files changed, 0 insertions, 13 deletions
diff --git a/usr.bin/printf/printf.c b/usr.bin/printf/printf.c
index d2fd37e2..34bb0a2 100644
--- a/usr.bin/printf/printf.c
+++ b/usr.bin/printf/printf.c
@@ -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);
OpenPOWER on IntegriCloud