Android: Allow wpa_supplicant to write files to osu-info dir
This commit allows any process running with group id of AID_WIFI to read/write files to osu-info directory. Also, it allows other users to read and search the osu-info directory. This fixes issues with hs20-osu-client creating a directory for wpa_supplicant use without wpa_supplicant actually having privileges to write there on Android where the wpa_supplicant process does not run as root. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
0147afa9df
commit
61697c7ecc
1 changed files with 12 additions and 1 deletions
|
@ -2339,12 +2339,23 @@ static int cmd_signup(struct hs20_osu_client *ctx, int no_prod_assoc,
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
snprintf(fname, sizeof(fname), "%s/osu-info", dir);
|
snprintf(fname, sizeof(fname), "%s/osu-info", dir);
|
||||||
if (mkdir(fname, S_IRWXU | S_IRWXG) < 0 && errno != EEXIST) {
|
if (mkdir(fname, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) < 0 &&
|
||||||
|
errno != EEXIST) {
|
||||||
wpa_printf(MSG_INFO, "mkdir(%s) failed: %s",
|
wpa_printf(MSG_INFO, "mkdir(%s) failed: %s",
|
||||||
fname, strerror(errno));
|
fname, strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ANDROID
|
||||||
|
/* Allow processes running with Group ID as AID_WIFI
|
||||||
|
* to read/write files from osu-info directory
|
||||||
|
*/
|
||||||
|
if (chown(fname, -1, AID_WIFI)) {
|
||||||
|
wpa_printf(MSG_INFO, "Could not chown osu-info directory: %s",
|
||||||
|
strerror(errno));
|
||||||
|
}
|
||||||
|
#endif /* ANDROID */
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "SET osu_dir %s", fname);
|
snprintf(buf, sizeof(buf), "SET osu_dir %s", fname);
|
||||||
if (wpa_command(ifname, buf) < 0) {
|
if (wpa_command(ifname, buf) < 0) {
|
||||||
wpa_printf(MSG_INFO, "Failed to configure osu_dir to wpa_supplicant");
|
wpa_printf(MSG_INFO, "Failed to configure osu_dir to wpa_supplicant");
|
||||||
|
|
Loading…
Reference in a new issue