]> arthur.barton.de Git - netatalk.git/blobdiff - etc/afpd/enumerate.c
sys/syslog.h -> syslog.h
[netatalk.git] / etc / afpd / enumerate.c
index 90de28f5cc8fe8449f62c37d5d0aa355034543f9..82d128898b775223e2f9bb14e02f7baceffb8d7f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: enumerate.c,v 1.9.2.3 2002-02-07 23:56:04 srittau Exp $
+ * $Id: enumerate.c,v 1.9.2.5 2002-03-12 15:09:20 srittau Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
@@ -14,8 +14,8 @@
 #include <string.h>
 #include <dirent.h>
 #include <errno.h>
+#include <syslog.h>
 
-#include <sys/syslog.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/file.h>
@@ -81,6 +81,18 @@ struct stat *st;
     /* add to cnid db */
     cdir->d_did = cnid_add(vol->v_db, st, dir->d_did, upath,
                            upathlen, cdir->d_did);
+    /* Fail out if things go bad with CNID. */
+    if (cdir->d_did == CNID_INVALID) {
+        switch (errno) {
+        case CNID_ERR_PARAM:
+            syslog(LOG_ERR, "adddir: Incorrect parameters passed to cnid_add");
+            return NULL;
+        case CNID_ERR_PATH:
+        case CNID_ERR_DB:
+        case CNID_ERR_MAX:
+            return NULL;
+        }
+    }
 #endif /* CNID_DB */
 
     if (cdir->d_did == 0) {