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