The branch main has been updated by bnovkov:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=06077dc327eae05026dde958c7a275b8b5bae3b9

commit 06077dc327eae05026dde958c7a275b8b5bae3b9
Author:     Bojan Novković <bnov...@freebsd.org>
AuthorDate: 2025-06-25 09:45:06 +0000
Commit:     Bojan Novković <bnov...@freebsd.org>
CommitDate: 2025-07-16 15:06:11 +0000

    makefs: Fix undefined behaviour in ffs.c
    
    Fix a UBSAN-reported error in `ffs_make_dirbuf` where a zero offset
    gets applied to a NULL pointer.
    
    Sponsored by:   Klara, Inc.
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D51037
    Reviewed by:    emaste, mckusick
---
 usr.sbin/makefs/ffs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/usr.sbin/makefs/ffs.c b/usr.sbin/makefs/ffs.c
index 4efcd20ad91a..c0fcadf11fba 100644
--- a/usr.sbin/makefs/ffs.c
+++ b/usr.sbin/makefs/ffs.c
@@ -1056,7 +1056,7 @@ ffs_make_dirbuf(dirbuf_t *dbuf, const char *name, fsnode 
*node, int needswap)
        reclen = DIRSIZ_SWAP(0, &de, needswap);
        de.d_reclen = ufs_rw16(reclen, needswap);
 
-       dp = (struct direct *)(dbuf->buf + dbuf->cur);
+       dp = dbuf->buf == NULL ? NULL : (struct direct *)(dbuf->buf + 
dbuf->cur);
        llen = 0;
        if (dp != NULL)
                llen = DIRSIZ_SWAP(0, dp, needswap);

Reply via email to