path: remove unnecessary readdir_r usage

Arguably all uses of readdir_r are unnecessary, but in this case
especially so, as the directory handle only exists within this function,
so we don't race with anybody.
This commit is contained in:
Carlos Martín Nieto 2015-06-15 13:28:08 +02:00
parent 2665fefa0f
commit 25bd0aaf20
2 changed files with 4 additions and 5 deletions

View File

@ -889,7 +889,7 @@ void git_path_iconv_clear(git_path_iconv_t *ic)
} }
} }
int git_path_iconv(git_path_iconv_t *ic, char **in, size_t *inlen) int git_path_iconv(git_path_iconv_t *ic, const char **in, size_t *inlen)
{ {
char *nfd = *in, *nfc; char *nfd = *in, *nfc;
size_t nfdlen = *inlen, nfclen, wantlen = nfdlen, alloclen, rv; size_t nfdlen = *inlen, nfclen, wantlen = nfdlen, alloclen, rv;
@ -1018,8 +1018,7 @@ int git_path_direach(
int error = 0; int error = 0;
ssize_t wd_len; ssize_t wd_len;
DIR *dir; DIR *dir;
path_dirent_data de_data; struct dirent *de;
struct dirent *de, *de_buf = (struct dirent *)&de_data;
#ifdef GIT_USE_ICONV #ifdef GIT_USE_ICONV
git_path_iconv_t ic = GIT_PATH_ICONV_INIT; git_path_iconv_t ic = GIT_PATH_ICONV_INIT;
@ -1045,7 +1044,7 @@ int git_path_direach(
(void)git_path_iconv_init_precompose(&ic); (void)git_path_iconv_init_precompose(&ic);
#endif #endif
while (p_readdir_r(dir, de_buf, &de) == 0 && de != NULL) { while ((de = readdir(dir)) != NULL) {
char *de_path = de->d_name; char *de_path = de->d_name;
size_t de_len = strlen(de_path); size_t de_len = strlen(de_path);

View File

@ -407,7 +407,7 @@ extern void git_path_iconv_clear(git_path_iconv_t *ic);
* pointer internal iconv buffer if rewrite happened. The `in` pointer * pointer internal iconv buffer if rewrite happened. The `in` pointer
* will be left unchanged if no rewrite was needed. * will be left unchanged if no rewrite was needed.
*/ */
extern int git_path_iconv(git_path_iconv_t *ic, char **in, size_t *inlen); extern int git_path_iconv(git_path_iconv_t *ic, const char **in, size_t *inlen);
#endif /* GIT_USE_ICONV */ #endif /* GIT_USE_ICONV */