From 138e73e254e2d9ecbfaae1cce40691db648932f7 Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Tue, 3 Mar 2026 15:55:52 +0100 Subject: [PATCH] Fix NULL-deref in pfs_rename_openfile_locked Check putil_strdup return before freeing old name. On OOM, keep old name and return -ENOMEM instead of setting NULL. Fixes #260 --- pclsync/pfs.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pclsync/pfs.c b/pclsync/pfs.c index 1466d27..3868a08 100644 --- a/pclsync/pfs.c +++ b/pclsync/pfs.c @@ -309,8 +309,13 @@ int pfs_rename_openfile_locked(psync_fsfileid_t fileid, fl->currentfolder = pfs_task_get_or_create_folder_tasks_locked(folderid); } + char *newname = putil_strdup(name); + if (!newname) { + pthread_mutex_unlock(&fl->mutex); + return -ENOMEM; + } free(fl->currentname); - fl->currentname = putil_strdup(name); + fl->currentname = newname; pthread_mutex_unlock(&fl->mutex); return 1; }