(svn r9998) -Fix (r9990): possible null pointer dereferences on MorphOS.
authorrubidium
Thu, 31 May 2007 14:29:19 +0000
changeset 7259 51195486289c
parent 7258 8a92d98ecb19
child 7260 23cd58b6bf51
(svn r9998) -Fix (r9990): possible null pointer dereferences on MorphOS.
src/fios.cpp
--- a/src/fios.cpp	Thu May 31 14:16:22 2007 +0000
+++ b/src/fios.cpp	Thu May 31 14:29:19 2007 +0000
@@ -114,11 +114,12 @@
 
 	case FIOS_TYPE_PARENT:
 		/* Check for possible NULL ptr (not required for UNIXes, but AmigaOS-alikes) */
-		if ((s = strrchr(path, PATHSEPCHAR)) != path) {
+		s = strrchr(path, PATHSEPCHAR);
+		if (s != NULL && s != path) {
 			s[0] = '\0'; // Remove last path separator character, so we can go up one level.
-			s = strrchr(path, PATHSEPCHAR);
-			if (s != NULL) s[1] = '\0'; // go up a directory
 		}
+		s = strrchr(path, PATHSEPCHAR);
+		if (s != NULL) s[1] = '\0'; // go up a directory
 #if defined(__MORPHOS__) || defined(__AMIGAOS__)
 		/* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */
 		else if ((s = strrchr(path, ':')) != NULL) s[1] = '\0';