On 29/08/2025 02:45, yubiao hu wrote:
* src/df.c (get_dev): Fix potential null pointer dereference
- Avoid dereferencing stat_file when both device and
  mount_point are NULL
- Handle allocation failure for cell when mount_point
  is NULL

These are valid concerns.
I also see potential null dereferences of device.
The attached patch takes a different approach
by ensuring arguments are initialized earlier.

Marking this as done.

Will push the attached later.

cheers,
Padraig
From 13a154cd43b241a24dfbb3c6a9d66bfb0a28510e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <p...@draigbrady.com>
Date: Sat, 30 Aug 2025 18:48:38 +0100
Subject: [PATCH] df: ensure no null pointer dereferences

* src/df.c (get_dev): Initialise arguments to non null,
to ensure we never dereference null pointer.
Fixes https://bugs.gnu.org/79336
---
 src/df.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/df.c b/src/df.c
index fe2e0e38f..8cfbeb419 100644
--- a/src/df.c
+++ b/src/df.c
@@ -1030,6 +1030,12 @@ get_dev (char const *device, char const *mount_point, char const *file,
   if (!stat_file)
     stat_file = mount_point ? mount_point : device;
 
+  if (! mount_point)
+    mount_point = "-";		/* unspecified */
+
+  if (! device)
+    device = "-";		/* unknown */
+
   struct fs_usage fsu;
   if (force_fsu)
     fsu = *force_fsu;
@@ -1084,12 +1090,6 @@ get_dev (char const *device, char const *mount_point, char const *file,
 
   alloc_table_row ();
 
-  if (! device)
-    device = "-";		/* unknown */
-
-  if (! file)
-    file = "-";			/* unspecified */
-
   char *dev_name = xstrdup (device);
   char *resolved_dev;
 
@@ -1107,6 +1107,9 @@ get_dev (char const *device, char const *mount_point, char const *file,
       dev_name = resolved_dev;
     }
 
+  if (! file)
+    file = "-";			/* unspecified */
+
   if (! fstype)
     fstype = "-";		/* unknown */
 
-- 
2.50.1

Reply via email to