blob: 7aa1d16e92cd0b4ff21d2be7e6993435e09b1034 [file] [log] [blame]
--- lib/lwres/lwconfig.c.old 2007-06-20 01:47:22.000000000 +0200
+++ lib/lwres/lwconfig.c 2008-06-15 02:57:02.000000000 +0200
@@ -175,13 +175,8 @@
REQUIRE(buffer != NULL);
REQUIRE(size > 0U);
- *p = '\0';
-
ch = eatwhite(fp);
- if (ch == EOF)
- return (EOF);
-
do {
*p = '\0';
@@ -592,23 +587,37 @@
if (strlen(word) == 0U)
rval = LWRES_R_SUCCESS;
else if (strcmp(word, "nameserver") == 0)
- rval = lwres_conf_parsenameserver(ctx, fp);
+ rval = (stopchar != '\n')? /* fail instantly if EOL is reached */
+ lwres_conf_parsenameserver(ctx, fp)
+ : LWRES_R_FAILURE;
else if (strcmp(word, "lwserver") == 0)
- rval = lwres_conf_parselwserver(ctx, fp);
+ rval = (stopchar != '\n')?
+ lwres_conf_parselwserver(ctx, fp)
+ : LWRES_R_FAILURE;
else if (strcmp(word, "domain") == 0)
- rval = lwres_conf_parsedomain(ctx, fp);
+ rval = (stopchar != '\n')?
+ lwres_conf_parsedomain(ctx, fp)
+ : LWRES_R_FAILURE;
else if (strcmp(word, "search") == 0)
- rval = lwres_conf_parsesearch(ctx, fp);
+ rval = (stopchar != '\n')?
+ lwres_conf_parsesearch(ctx, fp)
+ : LWRES_R_FAILURE;
else if (strcmp(word, "sortlist") == 0)
- rval = lwres_conf_parsesortlist(ctx, fp);
+ rval = (stopchar != '\n')?
+ lwres_conf_parsesortlist(ctx, fp)
+ : LWRES_R_FAILURE;
else if (strcmp(word, "options") == 0)
- rval = lwres_conf_parseoption(ctx, fp);
+ rval = (stopchar != '\n')?
+ lwres_conf_parseoption(ctx, fp)
+ : LWRES_R_FAILURE;
else {
/* unrecognised word. Ignore entire line */
rval = LWRES_R_SUCCESS;
- stopchar = eatline(fp);
- if (stopchar == EOF) {
- break;
+ if (stopchar != '\n') { /* do not eat the next line */
+ stopchar = eatline(fp);
+ if (stopchar == EOF) {
+ break;
+ }
}
}
if (ret == LWRES_R_SUCCESS && rval != LWRES_R_SUCCESS)