Fix: missing ftell/fseek error handling
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 26 Jul 2017 15:55:11 +0000 (11:55 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 8 Aug 2017 20:50:07 +0000 (16:50 -0400)
Found by Coverity:

CID 1376181 (#1 of 1): Argument cannot be negative (NEGATIVE_RETURNS).
negative_returns: filesize is passed to a parameter that cannot be
negative.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
plugins/ctf/fs-src/query.c

index 3c53b51c96b969e5719d439051938c457a82154b..670a8f1342c48494e81a2eb27dd902a4e4b4c2b3 100644 (file)
@@ -100,8 +100,16 @@ struct bt_value *metadata_info_query(struct bt_component_class *comp_class,
        } else {
                long filesize;
 
-               fseek(metadata_fp, 0, SEEK_END);
+               ret = fseek(metadata_fp, 0, SEEK_END);
+               if (ret) {
+                       fprintf(stderr, "Error in fseek: %s", strerror(errno));
+                       goto error;
+               }
                filesize = ftell(metadata_fp);
+               if (filesize < 0) {
+                       fprintf(stderr, "Error in ftell: %s", strerror(errno));
+                       goto error;
+               }
                rewind(metadata_fp);
                metadata_text = malloc(filesize + 1);
                if (!metadata_text) {
This page took 0.024478 seconds and 4 git commands to generate.