From: Matteo Croce <teknora...@meta.com>

A missing safety check trigger this warning (which become
an errow with -Werror):

  system.c: In function ‘sys_exec_info_script’:
  system.c:841:12: error: use of possibly-NULL ‘fp’ where non-null expected
                          [CWE-690] [-Werror=analyzer-possible-null-argument]
    841 |       rc = getline (&buf, &size, fp);
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~

Fix it by checking the file descriptor validity and bail out on error.
---
 src/system.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/system.c b/src/system.c
index d349bd67..a912cb67 100644
--- a/src/system.c
+++ b/src/system.c
@@ -838,6 +838,12 @@ sys_exec_info_script (const char **archive_name, int 
volume_number)
 
       xclose (p[PWRITE]);
       fp = fdopen (p[PREAD], "r");
+      if (!fp)
+       {
+         signal (SIGPIPE, saved_handler);
+         waitpid_error (info_script_option);
+         return -1;
+       }
       rc = getline (&buf, &size, fp);
       fclose (fp);
 
-- 
2.46.2


Reply via email to