X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fplugins%2Fradius%2Fradrealms.c;h=cd006fd0894cae2cae87ec303daf1256839cbe87;hb=fcb076c;hp=1d8da6247ec926f81514e683dd38de81354341a1;hpb=4abe4296f0eddbb2b6ff11dbbd27100156c85f87;p=ppp.git diff --git a/pppd/plugins/radius/radrealms.c b/pppd/plugins/radius/radrealms.c index 1d8da62..cd006fd 100644 --- a/pppd/plugins/radius/radrealms.c +++ b/pppd/plugins/radius/radrealms.c @@ -28,7 +28,8 @@ char pppd_version[] = VERSION; char radrealms_config[MAXPATHLEN] = "/etc/radiusclient/realms"; static option_t Options[] = { - { "realms-config-file", o_string, &radrealms_config }, + { "realms-config-file", o_string, &radrealms_config, + "Configuration file for RADIUS realms", OPT_STATIC, NULL, MAXPATHLEN }, { NULL } }; @@ -67,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++; @@ -86,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); @@ -100,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; } @@ -110,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); @@ -118,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);