P2PS: Fix p2p_find handling to allow "wildcard" with other hash values
The org.wi-fi.wfds "wildcard" is not a full wildcard of all service names and as such, it must not remove other service name hash values from the Probe Request frames. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
		
							parent
							
								
									f33a31b06c
								
							
						
					
					
						commit
						24533f7e81
					
				
					 1 changed files with 3 additions and 7 deletions
				
			
		|  | @ -1196,6 +1196,7 @@ int p2p_find(struct p2p_data *p2p, unsigned int timeout, | ||||||
| 		 * An empty seek string means no hash values, but still an ASP | 		 * An empty seek string means no hash values, but still an ASP | ||||||
| 		 * search. | 		 * search. | ||||||
| 		 */ | 		 */ | ||||||
|  | 		p2p_dbg(p2p, "ASP search"); | ||||||
| 		p2p->p2ps_seek_count = 0; | 		p2p->p2ps_seek_count = 0; | ||||||
| 		p2p->p2ps_seek = 1; | 		p2p->p2ps_seek = 1; | ||||||
| 	} else if (seek && seek_count <= P2P_MAX_QUERY_HASH) { | 	} else if (seek && seek_count <= P2P_MAX_QUERY_HASH) { | ||||||
|  | @ -1206,13 +1207,8 @@ int p2p_find(struct p2p_data *p2p, unsigned int timeout, | ||||||
| 			if (!p2ps_gen_hash(p2p, seek[i], buf)) | 			if (!p2ps_gen_hash(p2p, seek[i], buf)) | ||||||
| 				continue; | 				continue; | ||||||
| 
 | 
 | ||||||
| 			/* If asking for wildcard, don't do others */ | 			p2p_dbg(p2p, "Seek service %s hash " MACSTR, | ||||||
| 			if (os_memcmp(buf, p2p->wild_card_hash, | 				seek[i], MAC2STR(buf)); | ||||||
| 				      P2PS_HASH_LEN) == 0) { |  | ||||||
| 				count = 0; |  | ||||||
| 				break; |  | ||||||
| 			} |  | ||||||
| 
 |  | ||||||
| 			os_memcpy(&p2p->p2ps_seek_hash[count * P2PS_HASH_LEN], | 			os_memcpy(&p2p->p2ps_seek_hash[count * P2PS_HASH_LEN], | ||||||
| 				  buf, P2PS_HASH_LEN); | 				  buf, P2PS_HASH_LEN); | ||||||
| 			count++; | 			count++; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Jouni Malinen
						Jouni Malinen