From: Michael Tremer Date: Sat, 8 Jun 2019 15:10:08 +0000 (+0100) Subject: libpakfire: Constify pakfire_basename/dirname X-Git-Tag: 0.9.28~1285^2~965 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d11561f7f320916cf4a116aed805542ec589c7d0;p=pakfire.git libpakfire: Constify pakfire_basename/dirname Those return a pointer to a statically allocated buffer which should not be freed. To make that obvious, we make it const. Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/include/pakfire/util.h b/src/libpakfire/include/pakfire/util.h index 3447d5e5f..11fc41079 100644 --- a/src/libpakfire/include/pakfire/util.h +++ b/src/libpakfire/include/pakfire/util.h @@ -44,8 +44,8 @@ char* pakfire_format_date(time_t t); char* pakfire_path_join(const char* first, const char* second); -char* pakfire_basename(const char* path); -char* pakfire_dirname(const char* path); +const char* pakfire_basename(const char* path); +const char* pakfire_dirname(const char* path); int pakfire_access(Pakfire pakfire, const char* dir, const char* file, int mode); int pakfire_mkdir(Pakfire pakfire, const char* path, mode_t mode); diff --git a/src/libpakfire/package.c b/src/libpakfire/package.c index f2c3b5361..ab0d4ad6a 100644 --- a/src/libpakfire/package.c +++ b/src/libpakfire/package.c @@ -1000,8 +1000,8 @@ PAKFIRE_EXPORT PakfireFile pakfire_package_filelist_append(PakfirePackage pkg, c Id handle = pakfire_package_get_handle(pkg); - char* dirname = pakfire_dirname(filename); - char* basename = pakfire_basename(filename); + const char* dirname = pakfire_dirname(filename); + const char* basename = pakfire_basename(filename); Id did = repodata_str2dir(repodata, dirname, 1); if (!did) diff --git a/src/libpakfire/pakfire.c b/src/libpakfire/pakfire.c index 3a14029b8..99548c508 100644 --- a/src/libpakfire/pakfire.c +++ b/src/libpakfire/pakfire.c @@ -410,7 +410,7 @@ PAKFIRE_EXPORT FILE* pakfire_cache_open(Pakfire pakfire, const char* path, const char* cache_path = pakfire_get_cache_path(pakfire, path); // Ensure that the parent directory exists - char* cache_dirname = pakfire_dirname(cache_path); + const char* cache_dirname = pakfire_dirname(cache_path); int r = pakfire_mkdir(pakfire, cache_dirname, S_IRUSR|S_IWUSR|S_IXUSR); if (r) @@ -421,7 +421,6 @@ PAKFIRE_EXPORT FILE* pakfire_cache_open(Pakfire pakfire, const char* path, const FAIL: pakfire_free(cache_path); - pakfire_free(cache_dirname); return f; } diff --git a/src/libpakfire/util.c b/src/libpakfire/util.c index 529d0cb10..65de4eec6 100644 --- a/src/libpakfire/util.c +++ b/src/libpakfire/util.c @@ -144,16 +144,22 @@ PAKFIRE_EXPORT char* pakfire_path_join(const char* first, const char* second) { return buffer; } -char* pakfire_basename(const char* path) { +const char* pakfire_basename(const char* path) { char* name = pakfire_strdup(path); - return basename(name); + const char* r = basename(name); + pakfire_free(name); + + return r; } -char* pakfire_dirname(const char* path) { +const char* pakfire_dirname(const char* path) { char* parent = pakfire_strdup(path); - return dirname(parent); + const char* r = dirname(parent); + pakfire_free(parent); + + return r; } PAKFIRE_EXPORT int pakfire_access(Pakfire pakfire, const char* dir, const char* file, int mode) { @@ -187,13 +193,11 @@ int pakfire_mkdir(Pakfire pakfire, const char* path, mode_t mode) { return 0; // If parent does not exists, we try to create it. - char* parent = pakfire_dirname(path); + const char* parent = pakfire_dirname(path); r = pakfire_access(pakfire, parent, NULL, F_OK); if (r) r = pakfire_mkdir(pakfire, parent, 0); - pakfire_free(parent); - if (r) return r;