Thu, 04 Oct 2012 20:04:22 +0200
Correct very nasty code segment linkage problem when building perl DSO.
This problem leads to segfaults in libpixman called by RRDs::Simple, as
diagnosed by gdb(1) indicating 'print var... cannot access memory at
address' or something similar.
2 #ifndef HAVE_SETENV
3 #ifdef HAVE_CONFIG_H
4 #include "config.h"
5 #endif
6 #include <sys/types.h>
7 #include <stdlib.h>
8 #include <string.h>
10 int setenv(const char *kszName, const char *kszValue, int nOverwrite)
11 {
12 char *szPair = NULL;
14 if (nOverwrite == 0 && getenv(kszName) != 0)
15 return 0;
16 szPair = malloc(strlen(kszName) + 1 + strlen(kszValue) + 1);
17 if (szPair == NULL)
18 return -1;
19 strcpy(szPair, kszName);
20 strcat(szPair, "=");
21 strcat(szPair, kszValue);
22 putenv(szPair);
23 return 0;
24 }
25 #endif /* !HAVE_SETENV */