+ /* Normalize volume path */
+#ifdef REALPATH_TAKES_NULL
+ if ((realvolpath = realpath(volpath, NULL)) == NULL) {
+ LOG(log_error, logtype_afpd, "getvolbypath() cannot resolve path \"%s\"", volpath);
+ return NULL;
+ }
+#else
+ if ((realvolpath = malloc(MAXPATHLEN+1)) == NULL)
+ return NULL;
+ if (realpath(volpath, realvolpath) == NULL) {
+ free(realvolpath);
+ LOG(log_error, logtype_afpd, "getvolbypath() cannot resolve path \"%s\"", volpath);
+ return NULL;
+ }
+ /* Safe some memory */
+ char *tmpbuf2;
+ if ((tmpbuf2 = strdup(realvolpath)) == NULL) {
+ free(realvolpath);
+ return NULL;
+ }
+ free(realvolpath);
+ realvolpath = tmpbuf2;
+#endif
+