]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
erec: Handle returned value properly in erec_print
authorTomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Thu, 2 Aug 2012 00:31:34 +0000 (00:31 +0000)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 3 Aug 2012 09:37:46 +0000 (11:37 +0200)
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/erec.c

index 501bf4b6ecd0032588ef6066fd373aa763795e5f..554a406c0a9390e74694e11273a0785c1244803d 100644 (file)
@@ -78,7 +78,7 @@ void erec_print(FILE *f, const struct error_record *erec)
        const char *line = NULL; /* silence gcc */
        char buf[1024];
        unsigned int i, end;
-       int l;
+       int l, ret;
 
        switch (indesc->type) {
        case INDESC_BUFFER:
@@ -88,8 +88,9 @@ void erec_print(FILE *f, const struct error_record *erec)
        case INDESC_FILE:
                memset(buf, 0, sizeof(buf));
                lseek(indesc->fd, loc->line_offset, SEEK_SET);
-               read(indesc->fd, buf, sizeof(buf) - 1);
-               *strchrnul(buf, '\n') = '\0';
+               ret = read(indesc->fd, buf, sizeof(buf) - 1);
+               if (ret > 0)
+                       *strchrnul(buf, '\n') = '\0';
                line = buf;
                break;
        case INDESC_INTERNAL: