Handle zero-length legacy netconfig files correctly (just delete them)
[citadel.git] / citadel / netconfig.c
index 55d98d1ae148dd1cc238a47b771cade392ddbdb3..d87d522cbfe56e0e9608f4a575c90be1ac2694b3 100644 (file)
@@ -931,14 +931,19 @@ void convert_legacy_netcfg_files(void)
                        if (fp) {
                                fseek(fp, 0L, SEEK_END);
                                len = ftell(fp);
-                               v = malloc(len);
-                               if (v) {
-                                       rewind(fp);
-                                       if (fread(v, len, 1, fp)) {
-                                               write_netconfig_to_configdb(roomnum, v);
-                                               unlink(filename);
+                               if (len > 0) {
+                                       v = malloc(len);
+                                       if (v) {
+                                               rewind(fp);
+                                               if (fread(v, len, 1, fp)) {
+                                                       write_netconfig_to_configdb(roomnum, v);
+                                                       unlink(filename);
+                                               }
+                                               free(v);
                                        }
-                                       free(v);
+                               }
+                               else {
+                                       unlink(filename);       // zero length netconfig, just delete it
                                }
                                fclose(fp);
                        }