diff options
author | Danny Baumann <dannybaumann@web.de> | 2007-10-16 18:28:10 +0200 |
---|---|---|
committer | Danny Baumann <dannybaumann@web.de> | 2007-10-17 15:12:58 +0200 |
commit | e022d349c43d8b6f2b6579e0d2a318dd89ef8d41 (patch) | |
tree | 7cfc8d3c5f4a7e5ec8292a91e6db968f7df2924f | |
parent | 23485c5e7f1b16e169a166d4b89a96e68df88f61 (diff) |
putenv doesn't work properly with dynamically allocated strings that are free'd right after the putenv call.
-rw-r--r-- | src/screen.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/screen.c b/src/screen.c index 31b1293d..2130ca39 100644 --- a/src/screen.c +++ b/src/screen.c @@ -3125,15 +3125,13 @@ runCommand (CompScreen *s, if (fork () == 0) { /* build a display string that uses the right screen number */ - int stringLen; - char *pos, *delimiter, *screenString, *colon; + /* 5 extra chars should be enough for pretty much every situation */ + int stringLen = strlen (s->display->displayString) + 5; + char screenString[stringLen]; + char *pos, *delimiter, *colon; setsid (); - /* 5 extra chars should be enough for pretty much every situation */ - stringLen = strlen (s->display->displayString) + 5; - screenString = malloc (sizeof (char) * (stringLen + 1)); - if (screenString) { strcpy (screenString, s->display->displayString); @@ -3156,7 +3154,6 @@ runCommand (CompScreen *s, "%s.%d", colon, s->screenNum); putenv (screenString); - free (screenString); } else { |