]> code.citadel.org Git - citadel.git/blobdiff - webcit/webcit.c
* several memoryleaks
[citadel.git] / webcit / webcit.c
index 7638cbf2084bda3530befceb6182d88b6de37d6a..0c0b95845a0f9c059fb0d71cf1aa593a7fa68160 100644 (file)
@@ -115,8 +115,10 @@ void addurls(char *url, long ulen)
                aptr = up;
                while ((aptr < eptr) && (*aptr != '\0') && (*aptr != '='))
                        aptr++;
-               if (*aptr != '=')
+               if (*aptr != '=') {
+                       free(buf);
                        return;
+               }
                *aptr = '\0';
                aptr++;
                bptr = aptr;
@@ -877,7 +879,6 @@ void output_image()
 {
        struct wcsession *WCC = WC;
        char buf[SIZ];
-       char *xferbuf = NULL;
        off_t bytes;
        const char *MimeType;
        
@@ -885,7 +886,6 @@ void output_image()
        serv_getln(buf, sizeof buf);
        if (buf[0] == '2') {
                bytes = extract_long(&buf[4], 0);
-               xferbuf = malloc(bytes + 2);
 
                /** Read it from the server */
                
@@ -1361,7 +1361,7 @@ void session_loop(struct httprequest *req)
 
        WCC= WC;
        if (WCC->WBuf == NULL)
-               WCC->WBuf = NewStrBuf();
+               WC->WBuf = NewStrBufPlain(NULL, 32768);
        FlushStrBuf(WCC->WBuf);
 
        if (WCC->HBuf == NULL)
@@ -1606,7 +1606,7 @@ void session_loop(struct httprequest *req)
                        }
                }
        }
-
+////////todo: restorte language in this case
        /*
         * Functions which can be performed without logging in
         */
@@ -1692,7 +1692,12 @@ void session_loop(struct httprequest *req)
                        serv_printf("PASS %s", c_password);
                        serv_getln(buf, sizeof buf);
                        if (buf[0] == '2') {
+                               StrBuf *Lang;
                                become_logged_in(c_username, c_password, buf);
+                               if (get_preference("language", &Lang)) {
+                                       set_selected_language(ChrPtr(Lang));
+                                       go_selected_language();         /* set locale */
+                               }
                        }
                }
        }