summaryrefslogtreecommitdiff
path: root/src/lib/libc/stdlib/putenv.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libc/stdlib/putenv.c')
-rw-r--r--src/lib/libc/stdlib/putenv.c31
1 files changed, 11 insertions, 20 deletions
diff --git a/src/lib/libc/stdlib/putenv.c b/src/lib/libc/stdlib/putenv.c
index 2194c2c608..54482f6a14 100644
--- a/src/lib/libc/stdlib/putenv.c
+++ b/src/lib/libc/stdlib/putenv.c
@@ -1,6 +1,7 @@
1/* $OpenBSD: putenv.c,v 1.5 2005/08/08 08:05:37 espie Exp $ */
1/*- 2/*-
2 * Copyright (c) 1988 The Regents of the University of California. 3 * Copyright (c) 1988, 1993
3 * All rights reserved. 4 * The Regents of the University of California. All rights reserved.
4 * 5 *
5 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
@@ -10,11 +11,7 @@
10 * 2. Redistributions in binary form must reproduce the above copyright 11 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the 12 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution. 13 * documentation and/or other materials provided with the distribution.
13 * 3. All advertising materials mentioning features or use of this software 14 * 3. Neither the name of the University nor the names of its contributors
14 * must display the following acknowledgement:
15 * This product includes software developed by the University of
16 * California, Berkeley and its contributors.
17 * 4. Neither the name of the University nor the names of its contributors
18 * may be used to endorse or promote products derived from this software 15 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission. 16 * without specific prior written permission.
20 * 17 *
@@ -31,29 +28,23 @@
31 * SUCH DAMAGE. 28 * SUCH DAMAGE.
32 */ 29 */
33 30
34#if defined(LIBC_SCCS) && !defined(lint)
35/*static char *sccsid = "from: @(#)putenv.c 5.4 (Berkeley) 2/23/91";*/
36static char *rcsid = "$Id: putenv.c,v 1.1.1.1 1995/10/18 08:42:18 deraadt Exp $";
37#endif /* LIBC_SCCS and not lint */
38
39#include <stdlib.h> 31#include <stdlib.h>
40#include <string.h> 32#include <string.h>
41 33
42int 34int
43putenv(str) 35putenv(const char *str)
44 const char *str;
45{ 36{
46 register char *p, *equal; 37 char *p, *equal;
47 int rval; 38 int rval;
48 39
49 if (!(p = strdup(str))) 40 if ((p = strdup(str)) == NULL)
50 return(1); 41 return (-1);
51 if (!(equal = strchr(p, '='))) { 42 if ((equal = strchr(p, '=')) == NULL) {
52 (void)free(p); 43 (void)free(p);
53 return(1); 44 return (-1);
54 } 45 }
55 *equal = '\0'; 46 *equal = '\0';
56 rval = setenv(p, equal + 1, 1); 47 rval = setenv(p, equal + 1, 1);
57 (void)free(p); 48 (void)free(p);
58 return(rval); 49 return (rval);
59} 50}