about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-03-05 12:02:20 +0100
committerFlorian Weimer <fweimer@redhat.com>2021-03-05 14:07:26 +0100
commit3c667926673bac6017bf78569f582f6baee9948f (patch)
treee9d0fffc0ff3d68932127dda8efd6aec655c65ed
parent6bb0d2fe0a15ae69f0c351bd2b83a737b8da771f (diff)
downloadglibc-3c667926673bac6017bf78569f582f6baee9948f.tar.gz
glibc-3c667926673bac6017bf78569f582f6baee9948f.tar.xz
glibc-3c667926673bac6017bf78569f582f6baee9948f.zip
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>
-rw-r--r--posix/glob.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/posix/glob.h b/posix/glob.h
index 71c6b84a8a..b5686600c7 100644
--- a/posix/glob.h
+++ b/posix/glob.h
@@ -145,15 +145,15 @@ typedef struct
 #if !defined __USE_FILE_OFFSET64
 extern int glob (const char *__restrict __pattern, int __flags,
 		 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.  */
 extern void globfree (glob_t *__pglob) __THROW;
 #else
-extern int __REDIRECT_NTH (glob, (const char *__restrict __pattern,
-				  int __flags,
-				  int (*__errfunc) (const char *, int),
-				  glob_t *__restrict __pglob), glob64);
+extern int __REDIRECT_NTHNL (glob, (const char *__restrict __pattern,
+				    int __flags,
+				    int (*__errfunc) (const char *, int),
+				    glob_t *__restrict __pglob), glob64);
 
 extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), globfree64);
 #endif
@@ -161,7 +161,7 @@ extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), globfree64);
 #ifdef __USE_LARGEFILE64
 extern int glob64 (const char *__restrict __pattern, int __flags,
 		   int (*__errfunc) (const char *, int),
-		   glob64_t *__restrict __pglob) __THROW;
+		   glob64_t *__restrict __pglob) __THROWNL;
 
 extern void globfree64 (glob64_t *__pglob) __THROW;
 #endif