]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/plugins/radius/radrealms.c
Various fixes for errors found by coverity static analysis (#109)
[ppp.git] / pppd / plugins / radius / radrealms.c
index 7a30370121bdbca99fab7ac7b7479b74933d3d6b..cd006fd0894cae2cae87ec303daf1256839cbe87 100644 (file)
@@ -68,10 +68,12 @@ lookup_realm(char const *user,
     
     if ((fd = fopen(radrealms_config, "r")) == NULL) {
        option_error("cannot open %s", radrealms_config);
+       free(auths);
+       free(accts);
        return;
-    } 
+    }
     info("Reading %s", radrealms_config);
-    
+
     while ((fgets(buffer, sizeof(buffer), fd) != NULL)) {
        line++;
 
@@ -87,6 +89,8 @@ lookup_realm(char const *user,
            fclose(fd);
            option_error("%s: invalid line %d: %s", radrealms_config,
                         line, buffer);
+           free(auths);
+           free(accts);
            return;
        }
        info("Parsing '%s' entry:", p);
@@ -101,6 +105,8 @@ lookup_realm(char const *user,
            fclose(fd);
            option_error("%s: realm name missing on line %d: %s",
                         radrealms_config, line, buffer);
+           free(auths);
+           free(accts);
            return;
        }
 
@@ -111,6 +117,8 @@ lookup_realm(char const *user,
                fclose(fd);
                option_error("%s: server address missing on line %d: %s",
                             radrealms_config, line, buffer);
+               free(auths);
+               free(accts);
                return;
            }
            s->name[s->max] = strdup(p);
@@ -119,6 +127,8 @@ lookup_realm(char const *user,
                fclose(fd);
                option_error("%s: server port missing on line %d:  %s",
                             radrealms_config, line, buffer);
+               free(auths);
+               free(accts);
                return;
            }
            s->port[s->max] = atoi(p);