The attached patch fixes a number of instances in Start.c where space was malloced before calling CopyString (which mallocs its own space).
Suzanne -- [EMAIL PROTECTED] - http://www.igs.net/~tril/
diff -ur fvwm-20021004-orig/modules/ChangeLog fvwm-20021004/modules/ChangeLog --- fvwm-20021004-orig/modules/ChangeLog Fri Oct 4 13:33:40 2002 +++ fvwm-20021004/modules/ChangeLog Fri Oct 4 14:48:55 2002 @@ -1,3 +1,9 @@ +2002-10-04 Suzanne Skinner <[EMAIL PROTECTED]> + + * FvwmTaskBar/Start.c (StartButtonParseConfig): + Fixed a number of cases where space was malloced before calling + CopyString (which mallocs its own space) + 2002-10-04 Mikhael Goikhman <[EMAIL PROTECTED]> * FvwmTaskBar/Start.c: diff -ur fvwm-20021004-orig/modules/FvwmTaskBar/Start.c fvwm-20021004/modules/FvwmTaskBar/Start.c --- fvwm-20021004-orig/modules/FvwmTaskBar/Start.c Fri Oct 4 13:33:40 2002 +++ fvwm-20021004/modules/FvwmTaskBar/Start.c Fri Oct 4 14:47:35 2002 @@ -97,7 +97,6 @@ /* declarin caption twice, ignore */ break; } - First_Start_Button->buttonCaption = safemalloc(strlen(rest) * sizeof(char)); CopyString(&(First_Start_Button->buttonCaption), rest); break; case 1: /* StartMenu */ @@ -121,7 +120,6 @@ /* declaring command twice, ignore */ break; } - First_Start_Button->buttonCommand = safemalloc(strlen(rest) * sizeof(char)); CopyString(&(First_Start_Button->buttonCommand), rest); break; case 2: /* StartIcon */ @@ -145,7 +143,6 @@ /* declaring icon twice, ignore */ break; } - First_Start_Button->buttonIconFileName = safemalloc(strlen(rest) * sizeof(char)); CopyString(&(First_Start_Button->buttonIconFileName), rest); break; case 3: /* StartCommand */ @@ -169,7 +166,6 @@ /* declaring icon twice, ignore */ break; } - First_Start_Button->buttonStartCommand = safemalloc(strlen(rest) * sizeof(char)); CopyString(&(First_Start_Button->buttonStartCommand), rest); break; case 4: @@ -197,7 +193,6 @@ tokens[j+1] = tokens[k] + ((sizeof(char))*5); while(*(tokens[j+1])==' ') tokens[j+1]+=sizeof(char); - Last_Start_Button->buttonCaption = (char *) safemalloc(sizeof(char) * (strlen(tokens[j+1]))); CopyString(&(Last_Start_Button->buttonCaption), tokens[j+1]); titleRecorded=1; } @@ -206,7 +201,6 @@ tokens[j+1] = tokens[k] + ((sizeof(char))*4); while(*(tokens[j+1])==' ') tokens[j+1]+=sizeof(char); - Last_Start_Button->buttonIconFileName = (char *) safemalloc(sizeof(char) * (strlen(tokens[j+1]))); CopyString(&(Last_Start_Button->buttonIconFileName),tokens[j+1] ); iconRecorded = 1; } @@ -215,7 +209,6 @@ tokens[j+1] = tokens[k] + ((sizeof(char))*6); while(*(tokens[j+1])==' ') tokens[j+1]+=sizeof(char); - Last_Start_Button->buttonCommand = (char *) safemalloc(sizeof(char) * (strlen(tokens[j+1]))); CopyString(&(Last_Start_Button->buttonCommand), tokens[j+1]); actionRecorded = 1; }