]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
associate a deallocation for opendir
authorSteve Grubb <sgrubb@redhat.com>
Fri, 11 Mar 2022 20:29:06 +0000 (15:29 -0500)
committerSiddhesh Poyarekar <siddhesh@sourceware.org>
Mon, 14 Mar 2022 14:32:46 +0000 (20:02 +0530)
This patch associates closedir as a deallocation for opendir and fdopendir.
This required moving the closedir declaration above the other 2 functions.

Reviewed-by: Paul Eggert <eggert@cs.ucla.edu>
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
dirent/dirent.h

index 218f1ed44b9c267ddbaeea4f5d3f07d9f8db4f9e..c47d3273b2dbf399bd7576a05cf9c92244398d53 100644 (file)
@@ -126,28 +126,30 @@ enum
    The actual structure is opaque to users.  */
 typedef struct __dirstream DIR;
 
+/* Close the directory stream DIRP.
+   Return 0 if successful, -1 if not.
+
+   This function is a possible cancellation point and therefore not
+   marked with __THROW.  */
+extern int closedir (DIR *__dirp) __nonnull ((1));
+
 /* Open a directory stream on NAME.
    Return a DIR stream on the directory, or NULL if it could not be opened.
 
    This function is a possible cancellation point and therefore not
    marked with __THROW.  */
-extern DIR *opendir (const char *__name) __nonnull ((1));
+extern DIR *opendir (const char *__name) __nonnull ((1))
+       __attribute_malloc__ __attr_dealloc (closedir, 1);
 
 #ifdef __USE_XOPEN2K8
 /* Same as opendir, but open the stream on the file descriptor FD.
 
    This function is a possible cancellation point and therefore not
    marked with __THROW.  */
-extern DIR *fdopendir (int __fd);
+extern DIR *fdopendir (int __fd)
+       __attribute_malloc__ __attr_dealloc (closedir, 1);
 #endif
 
-/* Close the directory stream DIRP.
-   Return 0 if successful, -1 if not.
-
-   This function is a possible cancellation point and therefore not
-   marked with __THROW.  */
-extern int closedir (DIR *__dirp) __nonnull ((1));
-
 /* Read a directory entry from DIRP.  Return a pointer to a `struct
    dirent' describing the entry, or NULL for EOF or error.  The
    storage returned may be overwritten by a later readdir call on the