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.c28
1 files changed, 11 insertions, 17 deletions
diff --git a/src/lib/libc/stdlib/putenv.c b/src/lib/libc/stdlib/putenv.c
index 2194c2c608..231982bf87 100644
--- a/src/lib/libc/stdlib/putenv.c
+++ b/src/lib/libc/stdlib/putenv.c
@@ -1,6 +1,6 @@
1/*- 1/*-
2 * Copyright (c) 1988 The Regents of the University of California. 2 * Copyright (c) 1988, 1993
3 * All rights reserved. 3 * The Regents of the University of California. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
@@ -10,11 +10,7 @@
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the 11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution. 12 * documentation and/or other materials provided with the distribution.
13 * 3. All advertising materials mentioning features or use of this software 13 * 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 14 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission. 15 * without specific prior written permission.
20 * 16 *
@@ -32,28 +28,26 @@
32 */ 28 */
33 29
34#if defined(LIBC_SCCS) && !defined(lint) 30#if defined(LIBC_SCCS) && !defined(lint)
35/*static char *sccsid = "from: @(#)putenv.c 5.4 (Berkeley) 2/23/91";*/ 31static char *rcsid = "$OpenBSD: putenv.c,v 1.4 2005/03/30 18:51:49 pat Exp $";
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 */ 32#endif /* LIBC_SCCS and not lint */
38 33
39#include <stdlib.h> 34#include <stdlib.h>
40#include <string.h> 35#include <string.h>
41 36
42int 37int
43putenv(str) 38putenv(const char *str)
44 const char *str;
45{ 39{
46 register char *p, *equal; 40 char *p, *equal;
47 int rval; 41 int rval;
48 42
49 if (!(p = strdup(str))) 43 if ((p = strdup(str)) == NULL)
50 return(1); 44 return (-1);
51 if (!(equal = strchr(p, '='))) { 45 if ((equal = strchr(p, '=')) == NULL) {
52 (void)free(p); 46 (void)free(p);
53 return(1); 47 return (-1);
54 } 48 }
55 *equal = '\0'; 49 *equal = '\0';
56 rval = setenv(p, equal + 1, 1); 50 rval = setenv(p, equal + 1, 1);
57 (void)free(p); 51 (void)free(p);
58 return(rval); 52 return (rval);
59} 53}