optionsfrom: Properly handle errors when determining file size
authorTobias Brunner <tobias@strongswan.org>
Wed, 2 Jul 2014 10:03:36 +0000 (12:03 +0200)
committerTobias Brunner <tobias@strongswan.org>
Wed, 2 Jul 2014 10:38:45 +0000 (12:38 +0200)
src/libstrongswan/utils/optionsfrom.c

index 1170713..6f721c9 100644 (file)
@@ -90,8 +90,13 @@ METHOD(options_t, from, bool,
        }
 
        /* determine the file size */
-       fseek(fd, 0, SEEK_END);
-       src.len = ftell(fd);
+       if (fseek(fd, 0, SEEK_END) == -1 || (src.len = ftell(fd)) == -1)
+       {
+               DBG1(DBG_LIB, "optionsfrom: unable to determine size of '%s': %s",
+                        filename, strerror(errno));
+               fclose(fd);
+               return FALSE;
+       }
        rewind(fd);
 
        /* allocate one byte more just in case of a missing final newline */