if StrBuf_ServGetln() is called in a loop, its return value has to be checked for...
[citadel.git] / webcit / siteconfig.c
index 6a5eea83ba186cf3550e4b70b485c0c6527baa84..4b1fc5ce0a4ad1c8e3990b993f370b505402f3f4 100644 (file)
@@ -225,10 +225,10 @@ void load_siteconfig(void)
        serv_getln(buf, sizeof buf);
        i = 0;
        Buf = NewStrBuf();
-       while ((sizeof(ServerConfig) / sizeof(CfgMapping)) &&
-              (len = StrBuf_ServGetln(Buf),
-               strcmp(ChrPtr(Buf), "000")) && 
-              (i <= sizeof(ServerConfig))) 
+       while (len = StrBuf_ServGetln(Buf),
+              (len >= 0) && 
+              (i <= (sizeof(ServerConfig) / sizeof(CfgMapping))) &&
+              ((len != 3) || strcmp(ChrPtr(Buf), "000")))
        {
                Put(Cfg,
                    ServerConfig[i].Key,