You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by jo...@apache.org on 2005/09/01 11:39:14 UTC

svn commit: r265684 - /apr/apr/trunk/file_io/unix/dir.c

Author: jorton
Date: Thu Sep  1 02:39:11 2005
New Revision: 265684

URL: http://svn.apache.org/viewcvs?rev=265684&view=rev
Log:
* file_io/unix/dir.c (apr_dir_open): Fix error handling; don't assume
that apr_pcalloc can't change errno.  Remove a redundant cast to 
void *.

Modified:
    apr/apr/trunk/file_io/unix/dir.c

Modified: apr/apr/trunk/file_io/unix/dir.c
URL: http://svn.apache.org/viewcvs/apr/apr/trunk/file_io/unix/dir.c?rev=265684&r1=265683&r2=265684&view=diff
==============================================================================
--- apr/apr/trunk/file_io/unix/dir.c (original)
+++ apr/apr/trunk/file_io/unix/dir.c Thu Sep  1 02:39:11 2005
@@ -79,22 +79,22 @@
     apr_size_t dirent_size = 
         sizeof(*(*new)->entry) +
         (sizeof((*new)->entry->d_name) > 1 ? 0 : 255);
+    DIR *dir = opendir(dirname);
+
+    if (!dir) {
+        return errno;
+    }
 
     (*new) = (apr_dir_t *)apr_palloc(pool, sizeof(apr_dir_t));
 
     (*new)->pool = pool;
     (*new)->dirname = apr_pstrdup(pool, dirname);
-    (*new)->dirstruct = opendir(dirname);
+    (*new)->dirstruct = dir;
     (*new)->entry = apr_pcalloc(pool, dirent_size);
 
-    if ((*new)->dirstruct == NULL) {
-        return errno;
-    }    
-    else {
-        apr_pool_cleanup_register((*new)->pool, (void *)(*new), dir_cleanup,
-	                          apr_pool_cleanup_null);
-        return APR_SUCCESS;
-    }
+    apr_pool_cleanup_register((*new)->pool, *new, dir_cleanup,
+                              apr_pool_cleanup_null);
+    return APR_SUCCESS;
 }
 
 apr_status_t apr_dir_close(apr_dir_t *thedir)