summaryrefslogtreecommitdiff
path: root/bin/ksh
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2003-04-04 23:12:03 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2003-04-04 23:12:03 +0000
commit89818c6c69a0745284f6b5368cadd229bfe9c8cb (patch)
tree08fc92eea8682b34602753108636507bc3c3b03e /bin/ksh
parentaf21411c6974d6f0daa1fc6bb7e44821b1329bdf (diff)
two fixes; help from tedu & tdeval
Diffstat (limited to 'bin/ksh')
-rw-r--r--bin/ksh/main.c4
-rw-r--r--bin/ksh/misc.c14
2 files changed, 14 insertions, 4 deletions
diff --git a/bin/ksh/main.c b/bin/ksh/main.c
index d6af9466575..2db79dc4cbb 100644
--- a/bin/ksh/main.c
+++ b/bin/ksh/main.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: main.c,v 1.23 2003/03/10 03:48:16 david Exp $ */
+/* $OpenBSD: main.c,v 1.24 2003/04/04 23:12:02 deraadt Exp $ */
/*
* startup, main loop, environments and error handling
@@ -829,7 +829,7 @@ remove_temps(tp)
APERM);
memset(t, 0, sizeof(struct temp));
t->name = (char *) &t[1];
- strcpy(t->name, tp->name);
+ strlcpy(t->name, tp->name, strlen(tp->name) + 1);
t->next = delayed_remove;
delayed_remove = t;
}
diff --git a/bin/ksh/misc.c b/bin/ksh/misc.c
index d916ec47302..bf0149591bf 100644
--- a/bin/ksh/misc.c
+++ b/bin/ksh/misc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: misc.c,v 1.14 2003/03/13 09:03:07 deraadt Exp $ */
+/* $OpenBSD: misc.c,v 1.15 2003/04/04 23:12:02 deraadt Exp $ */
/*
* Miscellaneous functions
@@ -83,7 +83,17 @@ str_save(s, ap)
register const char *s;
Area *ap;
{
- return s ? strcpy((char*) alloc((size_t)strlen(s)+1, ap), s) : NULL;
+ size_t len;
+ char *p;
+
+ if (!s)
+ return NULL;
+ len = strlen(s)+1;
+ p = alloc(len, ap);
+ if (!p)
+ return NULL;
+ strlcpy(p, s, len+1);
+ return (p);
}
/* Allocate a string of size n+1 and copy upto n characters from the possibly