]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
WPS UFD: Handle scandir() error and no matches results differently
authorJouni Malinen <j@w1.fi>
Thu, 26 Feb 2009 20:06:11 +0000 (22:06 +0200)
committerJouni Malinen <j@w1.fi>
Thu, 26 Feb 2009 20:06:11 +0000 (22:06 +0200)
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.

src/wps/wps_ufd.c

index 56b26352871319bad4ab10045cd268d34af7295c..6f40c5bca954438d5626e78fc329382264b67a0e 100644 (file)
@@ -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);