From 05c52125311ac8d73e5549b315e4f665eebfaf29 Mon Sep 17 00:00:00 2001 From: graham.gower Date: Thu, 26 Nov 2009 00:41:19 -0500 Subject: Fix problem introduced in r382. Pointed out by jlc, thanks! git-svn-id: http://opkg.googlecode.com/svn/trunk@386 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- (limited to 'libopkg') diff --git a/libopkg/file_util.c b/libopkg/file_util.c index 64e2bd3..e625984 100644 --- a/libopkg/file_util.c +++ b/libopkg/file_util.c @@ -66,11 +66,17 @@ file_read_line_alloc(FILE *fp) int buf_len; char *line = NULL; int line_size = 0; + int got_nl = 0; buf[0] = '\0'; while (fgets(buf, BUFSIZ, fp)) { buf_len = strlen(buf); + if (buf[buf_len - 1] == '\n') { + buf_len--; + buf[buf_len] = '\0'; + got_nl = 1; + } if (line) { line_size += buf_len; line = xrealloc(line, line_size+1); @@ -79,10 +85,8 @@ file_read_line_alloc(FILE *fp) line_size = buf_len + 1; line = xstrdup(buf); } - if (buf[buf_len - 1] == '\n') { - buf[buf_len -1] = '\0'; + if (got_nl) break; - } } return line; -- cgit v0.9.1