posix: glob, glob64 should not be declared __THROW [BZ #27522]

These functions invoke callbacks with GLOB_ALTDIRFUNC, so they
are not leaf functions (as implied by _THROW).  Use __THROWNL
and __REDIRECT_NTHNL to express this.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
This commit is contained in:
Florian Weimer 2021-03-05 12:02:20 +01:00
parent 6bb0d2fe0a
commit 3c66792667

View File

@ -145,15 +145,15 @@ typedef struct
#if !defined __USE_FILE_OFFSET64 #if !defined __USE_FILE_OFFSET64
extern int glob (const char *__restrict __pattern, int __flags, extern int glob (const char *__restrict __pattern, int __flags,
int (*__errfunc) (const char *, int), int (*__errfunc) (const char *, int),
glob_t *__restrict __pglob) __THROW; glob_t *__restrict __pglob) __THROWNL;
/* Free storage allocated in PGLOB by a previous `glob' call. */ /* Free storage allocated in PGLOB by a previous `glob' call. */
extern void globfree (glob_t *__pglob) __THROW; extern void globfree (glob_t *__pglob) __THROW;
#else #else
extern int __REDIRECT_NTH (glob, (const char *__restrict __pattern, extern int __REDIRECT_NTHNL (glob, (const char *__restrict __pattern,
int __flags, int __flags,
int (*__errfunc) (const char *, int), int (*__errfunc) (const char *, int),
glob_t *__restrict __pglob), glob64); glob_t *__restrict __pglob), glob64);
extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), globfree64); extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), globfree64);
#endif #endif
@ -161,7 +161,7 @@ extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), globfree64);
#ifdef __USE_LARGEFILE64 #ifdef __USE_LARGEFILE64
extern int glob64 (const char *__restrict __pattern, int __flags, extern int glob64 (const char *__restrict __pattern, int __flags,
int (*__errfunc) (const char *, int), int (*__errfunc) (const char *, int),
glob64_t *__restrict __pglob) __THROW; glob64_t *__restrict __pglob) __THROWNL;
extern void globfree64 (glob64_t *__pglob) __THROW; extern void globfree64 (glob64_t *__pglob) __THROW;
#endif #endif