Attempting to fix a segfault generated in Removecontext()
[citadel.git] / citadel / modules / wiki / serv_wiki.c
index 77f7899f157c6d3e5acca6081a78bb80117accd0..242f52d0457a46e85cbf6500d413472a710e55f6 100644 (file)
@@ -610,10 +610,16 @@ void wiki_rev(char *pagename, char *rev, char *operation)
                         * but only if the client fetches the message we just generated immediately
                         * without first trying to perform other fetch operations.
                         */
-                       if (CC->cached_msglist != NULL) free(CC->cached_msglist);
-                       CC->cached_num_msgs = 1;
+                       if (CC->cached_msglist != NULL) {
+                               free(CC->cached_msglist);
+                               CC->cached_msglist = NULL;
+                               CC->cached_num_msgs = 0;
+                       }
                        CC->cached_msglist = malloc(sizeof(long));
-                       CC->cached_msglist[0] = msgnum;
+                       if (CC->cached_msglist != NULL) {
+                               CC->cached_num_msgs = 1;
+                               CC->cached_msglist[0] = msgnum;
+                       }
 
                }
                else if (!strcasecmp(operation, "revert")) {