Selaa lähdekoodia

Network delete fix.

Adam Ierymenko 8 vuotta sitten
vanhempi
commit
0843ed62fa
1 muutettua tiedostoa jossa 5 lisäystä ja 3 poistoa
  1. 5 3
      osdep/OSUtils.cpp

+ 5 - 3
osdep/OSUtils.cpp

@@ -170,9 +170,11 @@ bool OSUtils::rmDashRf(const char *path)
 		return true;
 	dptr = (struct dirent *)0;
 	for(;;) {
-		if (readdir_r(d,&de,&dptr))
+		if (readdir_r(d,&de,&dptr) != 0)
+			break;
+		if (!dptr)
 			break;
-		if ((dptr)&&(strcmp(dptr->d_name,".") != 0)&&(strcmp(dptr->d_name,"..") != 0)) {
+		if ((strcmp(dptr->d_name,".") != 0)&&(strcmp(dptr->d_name,"..") != 0)&&(strlen(dptr->d_name) > 0)) {
 			std::string p(path);
 			p.push_back(ZT_PATH_SEPARATOR);
 			p.append(dptr->d_name);
@@ -180,7 +182,7 @@ bool OSUtils::rmDashRf(const char *path)
 				if (!rmDashRf(p.c_str()))
 					return false;
 			}
-		} else break;
+		}
 	}
 	closedir(d);
 	return (rmdir(path) == 0);