]> code.citadel.org Git - citadel.git/commitdiff
Don't compute existing length of WC->preferences when it
authorArt Cancro <ajc@citadel.org>
Wed, 10 May 2006 02:05:47 +0000 (02:05 +0000)
committerArt Cancro <ajc@citadel.org>
Wed, 10 May 2006 02:05:47 +0000 (02:05 +0000)
is NULL.  This was causing webcit to crash during new user creation.

webcit/preferences.c

index 9284ead8baa10c504823da76467d9289e2df3008..987b2ac2c625857add7b921a9369baa2d602eabd 100644 (file)
@@ -157,8 +157,11 @@ void set_preference(char *key, char *value, int save_to_server) {
        char buf[SIZ];
        char thiskey[SIZ];
        char *newprefs = NULL;
+       size_t newprefs_len = 0;
 
-       newprefs = malloc(strlen(WC->preferences) + strlen(key) + strlen(value) + 10);
+       newprefs_len = strlen(key) + strlen(value) + 10;
+       if (WC->preferences != NULL) newprefs_len += strlen(WC->preferences);
+       newprefs = malloc(newprefs_len);
        if (newprefs == NULL) return;
        strcpy(newprefs, "");