当不断更改hostapd的模式(ap 2 sta)时,netifd的进程堆不断增加

时间:2018-12-03 09:00:46

标签: hostapd

我编写了一个脚本,将hostapd模式ap更改为sta并将sta更改为ap,该模式持续运行几个小时,并且netifd的进程挂起。

cat proc/id/maps


0400000-0041f000 r-xp 00000000 1f:06 1176       /sbin/netifd
0042f000-00430000 rw-p 0001f000 1f:06 1176       /sbin/netifd
**00430000-00476000 rwxp 00000000 00:00 0          [heap]**
772af000-7730a000 r-xp 00000000 1f:06 144        /lib/libuClibc-0.9.33.2.so

00400000-0041f000 r-xp 00000000 1f:06 1176       /sbin/netifd
0042f000-00430000 rw-p 0001f000 1f:06 1176       /sbin/netifd
**00430000-00477000 rwxp 00000000 00:00 0          [heap]**
772af000-7730a000 r-xp 00000000 1f:06 144        /lib/libuClibc-0.9.33.2.so

我发现该过程的堆在不断增加。 无法解决。

更改ap的模式,hostapd将被拆除和设置。 并且netifd的进程堆正在增加。

最终会导致

netifd/wireless.c 
wireless_device_run_handler()->netifd_start_process()

netifd/main.c 
netifd_start_process()->
if ((pid = fork()) < 0)
goto error;

叉失败,因为

日志

netifd_start_process>>>>>>>>after fork create
error on triggering 12: Cannot allocate memory

(netifd堆在脚本运行时使用越来越多的内存)


脚本的一部分

uci set wireless.@wifi-iface[$1].mode="$apmode"
uci commit wireless

/ sbin / wifi重新加载

0 个答案:

没有答案