bug#79336: [PATCH] df: fix potential null pointer dereference

Pádraig Brady <[email protected]>
Newsgroups gmane.comp.gnu.core-utils.bugs
Message-ID <[email protected]>
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
df-null-pointers.patch (text/x-patch, 1.4 KB)
From 13a154cd43b241a24dfbb3c6a9d66bfb0a28510e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.