From: Sebastian Harl Date: Sun, 25 Sep 2016 18:54:24 +0000 (+0200) Subject: Merge branch 'master' of git://git.tokkee.org/sysdb X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=commitdiff_plain;h=233d70fd5ffdc770e639da722a8070cb73ec4fc6;hp=dabdb5d3bde5d81b197dc457ad0be95450cbf9b5 Merge branch 'master' of git://git.tokkee.org/sysdb --- diff --git a/src/utils/os.c b/src/utils/os.c index 8ab52c7..70142f7 100644 --- a/src/utils/os.c +++ b/src/utils/os.c @@ -172,26 +172,25 @@ sdb_remove_all(const char *pathname) return -1; while (42) { - struct dirent de; - struct dirent *res = NULL; + struct dirent *de; + char filename[strlen(pathname) + sizeof(de->d_name) + 2]; - char filename[strlen(pathname) + sizeof(de.d_name) + 2]; + errno = 0; + de = readdir(d); + if (! de) { + if (errno == 0) + break; - memset(&de, 0, sizeof(de)); - if (readdir_r(d, &de, &res)) { closedir(d); return -1; } - if (! res) - break; - - if ((de.d_name[0] == '.') && ((de.d_name[1] == '\0') - || ((de.d_name[1] == '.')&& (de.d_name[2] == '\0')))) + if ((de->d_name[0] == '.') && ((de->d_name[1] == '\0') + || ((de->d_name[1] == '.')&& (de->d_name[2] == '\0')))) continue; snprintf(filename, sizeof(filename), - "%s/%s", pathname, de.d_name); + "%s/%s", pathname, de->d_name); if (sdb_remove_all(filename)) { closedir(d); return -1; diff --git a/t/unit/utils/dbi_test.c b/t/unit/utils/dbi_test.c index ebc34f6..6fb2938 100644 --- a/t/unit/utils/dbi_test.c +++ b/t/unit/utils/dbi_test.c @@ -164,7 +164,8 @@ const dbi_inst INST = (void *)0x4711; int dbi_initialize_r(const char __attribute__((unused)) *driverdir, dbi_inst *pInst) { - *pInst = INST; + if (pInst) + *pInst = INST; return 0; } /* dbi_initialize_r */ @@ -214,19 +215,19 @@ dbi_shutdown(void); void dbi_shutdown(void) { - dbi_shutdown_r(NULL); + dbi_shutdown_r(INST); } /* dbi_shutdown */ dbi_driver dbi_driver_open(const char *name) { - return dbi_driver_open_r(name, NULL); + return dbi_driver_open_r(name, INST); } /* dbi_driver_open */ dbi_driver dbi_driver_list(dbi_driver curr) { - return dbi_driver_list_r(curr, NULL); + return dbi_driver_list_r(curr, INST); } /* dbi_driver_list */ #endif