summaryrefslogtreecommitdiff
path: root/package/hostapd/patches/600-terminate_on_setup_failure.patch
blob: 9a7e889ebf588ead4a3013e2ec7164ad8dd1ecc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
--- a/src/ap/hostapd.c
+++ b/src/ap/hostapd.c
@@ -717,11 +717,8 @@ int hostapd_setup_interface_complete(str
 	size_t j;
 	u8 *prev_addr;
 
-	if (err) {
-		wpa_printf(MSG_ERROR, "Interface initialization failed");
-		eloop_terminate();
-		return -1;
-	}
+	if (err)
+		goto error;
 
 	wpa_printf(MSG_DEBUG, "Completing interface initialization");
 	if (hapd->iconf->channel) {
@@ -737,7 +734,7 @@ int hostapd_setup_interface_complete(str
 				     hapd->iconf->secondary_channel)) {
 			wpa_printf(MSG_ERROR, "Could not set channel for "
 				   "kernel driver");
-			return -1;
+			goto error;
 		}
 	}
 
@@ -748,7 +745,7 @@ int hostapd_setup_interface_complete(str
 			hostapd_logger(hapd, NULL, HOSTAPD_MODULE_IEEE80211,
 				       HOSTAPD_LEVEL_WARNING,
 				       "Failed to prepare rates table.");
-			return -1;
+			goto error;
 		}
 	}
 
@@ -756,14 +753,14 @@ int hostapd_setup_interface_complete(str
 	    hostapd_set_rts(hapd, hapd->iconf->rts_threshold)) {
 		wpa_printf(MSG_ERROR, "Could not set RTS threshold for "
 			   "kernel driver");
-		return -1;
+		goto error;
 	}
 
 	if (hapd->iconf->fragm_threshold > -1 &&
 	    hostapd_set_frag(hapd, hapd->iconf->fragm_threshold)) {
 		wpa_printf(MSG_ERROR, "Could not set fragmentation threshold "
 			   "for kernel driver");
-		return -1;
+		goto error;
 	}
 
 	prev_addr = hapd->own_addr;
@@ -773,7 +770,7 @@ int hostapd_setup_interface_complete(str
 		if (j)
 			os_memcpy(hapd->own_addr, prev_addr, ETH_ALEN);
 		if (hostapd_setup_bss(hapd, j == 0))
-			return -1;
+			goto error;
 		if (hostapd_mac_comp_empty(hapd->conf->bssid) == 0)
 			prev_addr = hapd->own_addr;
 	}
@@ -785,7 +782,7 @@ int hostapd_setup_interface_complete(str
 	if (hostapd_driver_commit(hapd) < 0) {
 		wpa_printf(MSG_ERROR, "%s: Failed to commit driver "
 			   "configuration", __func__);
-		return -1;
+		goto error;
 	}
 
 	wpa_printf(MSG_DEBUG, "%s: Setup of interface done.",
@@ -795,6 +792,11 @@ int hostapd_setup_interface_complete(str
 		iface->init_complete(iface);
 
 	return 0;
+
+error:
+	wpa_printf(MSG_ERROR, "Interface initialization failed");
+	eloop_terminate();
+	return -1;
 }