From 7cebfd6e58c77935450c1feb01da1c11a42b84bc Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Sun, 8 Mar 2026 17:16:58 +0100 Subject: [PATCH] Migrate plocalscan.c malloc/free to pmem_malloc/pmem_free --- pclsync/plocalscan.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/pclsync/plocalscan.c b/pclsync/plocalscan.c index 7299bd7..c963ad0 100644 --- a/pclsync/plocalscan.c +++ b/pclsync/plocalscan.c @@ -40,6 +40,7 @@ #include "plist.h" #include "plocalnotify.h" #include "plocalscan.h" +#include "pmem.h" #include "ppath.h" #include "ppathstatus.h" #include "prun.h" @@ -167,7 +168,7 @@ static void scanner_set_syncs_to_list(psync_list *lst, pdbg_logf(D_WARNING, "folder %s deviceid is different, ignoring", lp); continue; } - l = (sync_list *)malloc(offsetof(sync_list, localpath) + lplen + 1); + l = (sync_list *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(sync_list, localpath) + lplen + 1); l->folderid = psync_get_number(row[1]); l->deviceid = deviceid; l->syncid = psync_get_number(row[0]); @@ -175,7 +176,7 @@ static void scanner_set_syncs_to_list(psync_list *lst, memcpy(l->localpath, lp, lplen + 1); psync_list_add_tail(lst, &l->list); l_full_deviceid = - (sync_list *)malloc(offsetof(sync_list, localpath) + lplen + 1); + (sync_list *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(sync_list, localpath) + lplen + 1); l_full_deviceid->folderid = psync_get_number(row[1]); l_full_deviceid->deviceid = pfile_stat_device_full(&st); l_full_deviceid->syncid = psync_get_number(row[0]); @@ -184,7 +185,7 @@ static void scanner_set_syncs_to_list(psync_list *lst, psync_list_add_tail(lst_deviceid_full, &l_full_deviceid->list); } psql_free(res); - free(syncmp); + pmem_free(PMEM_SUBSYS_SYNC, syncmp); } static void add_ignored_dir(const char *path) { @@ -249,7 +250,7 @@ static void reload_ignored_folders() { homelen = strlen(home); } if (home) { - dir = (char *)malloc(dirlen + homelen - 4); + dir = (char *)pmem_malloc(PMEM_SUBSYS_SYNC, dirlen + homelen - 4); memcpy(dir, home, homelen); memcpy(dir + homelen, start + 5, dirlen - 5); dir[dirlen + homelen - 5] = 0; @@ -257,15 +258,15 @@ static void reload_ignored_folders() { dir = NULL; } } else { - dir = (char *)malloc(dirlen + 1); + dir = (char *)pmem_malloc(PMEM_SUBSYS_SYNC, dirlen + 1); memcpy(dir, start, dirlen); dir[dirlen] = 0; } if (dir) add_ignored_dir(dir); - free(dir); + pmem_free(PMEM_SUBSYS_SYNC, dir); } - free(home); + pmem_free(PMEM_SUBSYS_SYNC, home); } static int is_path_to_ignore(uint64_t deviceid, uint64_t inode) { @@ -292,7 +293,7 @@ static void scanner_local_entry_to_list(void *ptr, ppath_stat *st) { lst = (psync_list *)ptr; l = strlen(st->name) + 1; - e = (sync_folderlist *)malloc(offsetof(sync_folderlist, name) + l); + e = (sync_folderlist *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(sync_folderlist, name) + l); e->localid = 0; e->remoteid = 0; e->inode = pfile_stat_inode(&st->stat); @@ -356,7 +357,7 @@ static void scanner_db_folder_to_list(psync_syncid_t syncid, continue; } namelen++; - e = (sync_folderlist *)malloc(offsetof(sync_folderlist, name) + + e = (sync_folderlist *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(sync_folderlist, name) + namelen); e->localid = psync_get_number(row[0]); e->remoteid = psync_get_number_or_null(row[1]); @@ -385,7 +386,7 @@ static void scanner_db_folder_to_list(psync_syncid_t syncid, continue; } namelen++; - e = (sync_folderlist *)malloc(offsetof(sync_folderlist, name) + + e = (sync_folderlist *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(sync_folderlist, name) + namelen); e->localid = psync_get_number(row[0]); e->remoteid = psync_get_number_or_null(row[1]); @@ -414,7 +415,7 @@ static sync_folderlist *copy_folderlist_element(const sync_folderlist *e, sync_folderlist *ret; size_t l; l = offsetof(sync_folderlist, name) + strlen(e->name) + 1; - ret = (sync_folderlist *)malloc(l); + ret = (sync_folderlist *)pmem_malloc(PMEM_SUBSYS_SYNC, l); memcpy(ret, e, l); ret->localparentfolderid = localfolderid; ret->parentfolderid = folderid; @@ -572,7 +573,7 @@ scanner_scan_folder(const char *localpath, psync_folderid_t folderid, subpath = putil_strcat(localpath, "/", l->name, NULL); scanner_scan_folder(subpath, l->remoteid, l->localid, syncid, synctype, deviceid); - free(subpath); + pmem_free(PMEM_SUBSYS_SYNC, subpath); } psync_list_for_each_element_call(&disklist, sync_folderlist, list, free); @@ -808,7 +809,7 @@ static void scan_created_folder(sync_folderlist *fl) { localpath, (unsigned long)fl->localid, fl->name); scanner_scan_folder(localpath, 0, fl->localid, fl->syncid, fl->synctype, fl->deviceid); - free(localpath); + pmem_free(PMEM_SUBSYS_SYNC, localpath); } } @@ -1257,7 +1258,7 @@ void psync_restat_sync_folders_add(psync_syncid_t syncid, sync_restat_list *l; struct stat st; size_t lplen = strlen(localpath); - l = (sync_restat_list *)malloc(offsetof(sync_restat_list, localpath) + + l = (sync_restat_list *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(sync_restat_list, localpath) + lplen + 1); l->syncid = syncid; memcpy(l->localpath, localpath, lplen + 1); @@ -1287,7 +1288,7 @@ void psync_restat_sync_folders_del(psync_syncid_t syncid) { } if (to_del) { psync_list_del(&to_del->list); - free(to_del); + pmem_free(PMEM_SUBSYS_SYNC, to_del); } pthread_mutex_unlock(&restat_mutex); }