]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Use fr_mkdir where possible
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sat, 2 Nov 2019 19:01:52 +0000 (13:01 -0600)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sat, 2 Nov 2019 19:01:52 +0000 (13:01 -0600)
src/lib/server/exfile.c
src/lib/server/log.c
src/lib/util/misc.c
src/lib/util/misc.h
src/modules/rlm_linelog/rlm_linelog.c
src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c

index 8cb48b00beb10c51fbb0d310af21fdf7551914ff..0586b34591e2de8c627a3743a0003c30dd87c967 100644 (file)
@@ -242,7 +242,7 @@ static int exfile_open_mkdir(exfile_t *ef, char const *filename, mode_t permissi
                if ((dirperm & 0060) != 0) dirperm |= 0010;
                if ((dirperm & 0006) != 0) dirperm |= 0001;
 
-               if (rad_mkdir(dir, dirperm, -1, -1) < 0) {
+               if (fr_mkdir(NULL, dir, -1, dirperm) < 0) {
                        fr_strerror_printf("Failed to create directory %s: %s", dir, fr_syserror(errno));
                        talloc_free(dir);
                        return -1;
index 33c4b75e4aea236bc64c5df40c001e166000ec3e..37650490a96a731a36232d91060257a81f9c8fc6 100644 (file)
@@ -382,7 +382,7 @@ void vlog_request(fr_log_type_t type, fr_log_lvl_t lvl, REQUEST *request,
                p = strrchr(exp, FR_DIR_SEP);
                if (p) {
                        *p = '\0';
-                       if (rad_mkdir(exp, S_IRWXU, -1, -1) < 0) {
+                       if (fr_mkdir(NULL, exp, -1, S_IRWXU) < 0) {
                                ERROR("Failed creating %s: %s", exp, fr_syserror(errno));
                                talloc_free(exp);
                                return;
index 2d706eb952c3dbe8da4c70a0533360eaa807c34c..4f3992228d718ebd6f97c704442e139258671606 100644 (file)
@@ -1301,12 +1301,15 @@ static ssize_t _fr_mkdir(int *fd_out, char const *path, mode_t mode)
  *     - <= 0 on failure. Negative offset pointing to the
  *       path separator of the path component that caused the error.
  */
-ssize_t fr_mkdir(int *fd_out, char const *path, size_t len, mode_t mode)
+ssize_t fr_mkdir(int *fd_out, char const *path, ssize_t len, mode_t mode)
 {
        char    *our_path;
        int     fd = -1;
        ssize_t slen;
 
+       if (len < 0) len = strlen(path);
+       if (len == 0) return 0;
+
        /*
         *      Fast path (har har)
         *
@@ -1320,7 +1323,7 @@ ssize_t fr_mkdir(int *fd_out, char const *path, size_t len, mode_t mode)
         *      Dup the amount of input path
         *      we need.
         */
-       our_path = talloc_bstrndup(NULL, path, len);
+       our_path = talloc_bstrndup(NULL, path, (size_t)len);
        if (!our_path) {
                fr_strerror_printf("Out of memory");
                return -1;
index a7a652663622a6b56e7bc669ff4fd14851f86dc8..3246bb714df7092020b5e95c2d05d2e8f1c85938 100644 (file)
@@ -181,7 +181,7 @@ int8_t              fr_pointer_cmp(void const *a, void const *b);
 void           fr_quick_sort(void const *to_sort[], int min_idx, int max_idx, fr_cmp_t cmp);
 int            fr_digest_cmp(uint8_t const *a, uint8_t const *b, size_t length) CC_HINT(nonnull);
 
-ssize_t                fr_mkdir(int *fd_out, char const *path, size_t len, mode_t mode);
+ssize_t                fr_mkdir(int *fd_out, char const *path, ssize_t len, mode_t mode);
 
 ssize_t                fr_file_touch(int *fd_out, char const *filename, mode_t mode, bool mkdir, mode_t dir_mode);
 
index 36ad394be23ac2d8057469dd49ed48261de69722..f9b8a61f24567b7bb8086d12463bb9ed4c03b118 100644 (file)
@@ -646,7 +646,7 @@ build_vector:
                p = strrchr(path, '/');
                if (p) {
                        *p = '\0';
-                       if (rad_mkdir(path, 0700, -1, -1) < 0) {
+                       if (fr_mkdir(NULL, path, -1, 0700) < 0) {
                                RERROR("Failed to create directory %s: %s", path, fr_syserror(errno));
                                rcode = RLM_MODULE_FAIL;
                                goto finish;
index 6521276b0b8f4ede0c6d7170d0c62769212ae5bf..e06f4996dfb4b9fc2fec77a7e19093b05d8617cc 100644 (file)
@@ -719,7 +719,7 @@ static int mod_instantiate(rlm_sql_config_t const *config, void *instance, CONF_
                        MEM(buff = talloc_typed_strdup(cs, inst->filename));
                }
 
-               ret = rad_mkdir(buff, 0700, -1, -1);
+               ret = fr_mkdir(NULL, buff, -1, 0700);
                talloc_free(buff);
                if (ret < 0) {
                        ERROR("Failed creating directory for SQLite database: %s", fr_syserror(errno));