optionsfrom: Properly handle errors when determining file size
[strongswan.git] / 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 */