X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fplugins%2Fradius%2Fradrealms.c;h=a3b9a513bb53ab93a59e25e7d01e4b4930d3cf99;hb=75f1f5fde9fa6a64d0c35af6dfac5086a0739334;hp=7a30370121bdbca99fab7ac7b7479b74933d3d6b;hpb=880a81be7c8e0fe8567227bc17a1bff3ea035943;p=ppp.git diff --git a/pppd/plugins/radius/radrealms.c b/pppd/plugins/radius/radrealms.c index 7a30370..a3b9a51 100644 --- a/pppd/plugins/radius/radrealms.c +++ b/pppd/plugins/radius/radrealms.c @@ -17,6 +17,10 @@ static char const RCSID[] = "$Id: radrealms.c,v 1.2 2004/11/14 07:26:26 paulus Exp $"; +#ifdef HAVE_CONFIG_H +#include +#endif + #include "pppd.h" #include "radiusclient.h" #include @@ -68,10 +72,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 +93,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 +109,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 +121,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 +131,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);