Browse Source

AP: Check os_get_random() return value more consistently

While this specific case does not really care what value is used, the
the theoretical error case can be handled more consistently. (CID 72684)

Signed-off-by: Jouni Malinen <j@w1.fi>
Jouni Malinen 10 years ago
parent
commit
24661bbadc
1 changed files with 9 additions and 1 deletions
  1. 9 1
      src/ap/sta_info.c

+ 9 - 1
src/ap/sta_info.c

@@ -904,7 +904,15 @@ static void ap_sa_query_timer(void *eloop_ctx, void *timeout_ctx)
 	sta->sa_query_trans_id = nbuf;
 	sta->sa_query_trans_id = nbuf;
 	sta->sa_query_count++;
 	sta->sa_query_count++;
 
 
-	os_get_random(trans_id, WLAN_SA_QUERY_TR_ID_LEN);
+	if (os_get_random(trans_id, WLAN_SA_QUERY_TR_ID_LEN) < 0) {
+		/*
+		 * We don't really care which ID is used here, so simply
+		 * hardcode this if the mostly theoretical os_get_random()
+		 * failure happens.
+		 */
+		trans_id[0] = 0x12;
+		trans_id[1] = 0x34;
+	}
 
 
 	timeout = hapd->conf->assoc_sa_query_retry_timeout;
 	timeout = hapd->conf->assoc_sa_query_retry_timeout;
 	sec = ((timeout / 1000) * 1024) / 1000;
 	sec = ((timeout / 1000) * 1024) / 1000;