From 2cce8f101f772105244405667b9ba15ac2933146 Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Sun, 31 Jul 2022 17:48:07 -0300 Subject: git: Make use of both `is_dir()`, and `mkdirp()` in `create_pull_request_dir()` --- git.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'git.c') diff --git a/git.c b/git.c index 7b2fd6d..d173471 100644 --- a/git.c +++ b/git.c @@ -634,9 +634,17 @@ int create_pull_request_dir(pull_request *pr, index_t *idx, const char *root) { } /* Is there no existing directory? */ - if (stat(pr_dir, &st) < 0) { - /* Create a directory with a name of the stringified ID. */ - mkdir(pr_dir, 0755); + switch (is_dir(pr_dir)) { + /* PR root exists, and is a directory. */ + case 1 : break; + /* PR root exists, but isn't a directory. */ + case 0 : + log(LOG_ERR, "PR root \"%s\" exists, but isn't a directory.", pr_dir); + free(pr_dir); + return -1; + break; + /* PR root doesn't exist. */ + default : mkdirp(pr_dir, 0755); break; } /* Did we fail to create the info file? */ -- cgit v1.2.3-13-gbd6f