Browse Source

WPS UFD: Handle scandir() error and no matches results differently

Better make sure there are no memory leaks in case of 0 entries
found. In addition, the error string may be of use in the error case.
Jouni Malinen 16 years ago
parent
commit
1b39bad109
1 changed files with 7 additions and 1 deletions
  1. 7 1
      src/wps/wps_ufd.c

+ 7 - 1
src/wps/wps_ufd.c

@@ -61,8 +61,14 @@ static int wps_get_dev_pwd_e_file_name(char *path, char *file_name)
 
 	file_num = scandir(path, &namelist, &dev_pwd_e_file_filter,
 			   alphasort);
-	if (file_num <= 0) {
+	if (file_num < 0) {
+		wpa_printf(MSG_ERROR, "WPS: OOB file not found: %d (%s)",
+			   errno, strerror(errno));
+		return -1;
+	}
+	if (file_num == 0) {
 		wpa_printf(MSG_ERROR, "WPS: OOB file not found");
+		os_free(namelist);
 		return -1;
 	}
 	os_strlcpy(file_name, namelist[0]->d_name, 13);