Module Name: src Committed By: christos Date: Sat Oct 15 22:57:57 UTC 2011
Modified Files: src/lib/libc/net: hesiod.c Log Message: use fparseln To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 src/lib/libc/net/hesiod.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libc/net/hesiod.c diff -u src/lib/libc/net/hesiod.c:1.25 src/lib/libc/net/hesiod.c:1.26 --- src/lib/libc/net/hesiod.c:1.25 Tue Jan 4 19:09:43 2011 +++ src/lib/libc/net/hesiod.c Sat Oct 15 18:57:57 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: hesiod.c,v 1.25 2011/01/05 00:09:43 wiz Exp $ */ +/* $NetBSD: hesiod.c,v 1.26 2011/10/15 22:57:57 christos Exp $ */ /* Copyright (c) 1996 by Internet Software Consortium. * @@ -51,7 +51,7 @@ __IDSTRING(rcsid_hesiod_p_h, "#Id: hesiod_p.h,v 1.1 1996/12/08 21:39:37 ghudson Exp #"); __IDSTRING(rcsid_hescompat_c, "#Id: hescompat.c,v 1.1.2.1 1996/12/16 08:37:45 ghudson Exp #"); -__RCSID("$NetBSD: hesiod.c,v 1.25 2011/01/05 00:09:43 wiz Exp $"); +__RCSID("$NetBSD: hesiod.c,v 1.26 2011/10/15 22:57:57 christos Exp $"); #endif /* LIBC_SCCS and not lint */ #include "namespace.h" @@ -317,8 +317,7 @@ read_config_file(ctx, filename) struct hesiod_p *ctx; const char *filename; { - char *key, *data, *p, **which; - char buf[MAXDNAME + 7]; + char *buf, *key, *data, *p, **which; int n; FILE *fp; @@ -344,10 +343,9 @@ read_config_file(ctx, filename) } ctx->lhs = NULL; ctx->rhs = NULL; - while (fgets(buf, sizeof(buf), fp) != NULL) { + for (; (buf = fparseln(fp, NULL, NULL, NULL, FPARSELN_UNESCALL)) + != NULL; free(buf)) { p = buf; - if (*p == '#' || *p == '\n' || *p == '\r') - continue; while (*p == ' ' || *p == '\t') p++; key = p; @@ -378,6 +376,7 @@ read_config_file(ctx, filename) *which = strdup(data); if (!*which) { errno = ENOMEM; + free(buf); (void)fclose(fp); return -1; }