summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2007-10-16 18:28:10 +0200
committerDanny Baumann <dannybaumann@web.de>2007-10-17 15:12:58 +0200
commite022d349c43d8b6f2b6579e0d2a318dd89ef8d41 (patch)
tree7cfc8d3c5f4a7e5ec8292a91e6db968f7df2924f
parent23485c5e7f1b16e169a166d4b89a96e68df88f61 (diff)
putenv doesn't work properly with dynamically allocated strings that are free'd right after the putenv call.
-rw-r--r--src/screen.c11
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
{