Commit 3db1654
net/local: remove client from server.lc_waiters when client close
if client is a noblocking socket, user can do close when server has not yet
invoke accept interface, so we need remove this socket from server.lc_waiters.
avoid server socket access the freed memory.
==936564==ERROR: AddressSanitizer: heap-use-after-free on address 0xf23071c8 at pc 0x58eaac3b bp 0xf0b9e218 sp 0xf0b9e208
READ of size 4 at 0xf23071c8 thread T0
#0 0x58eaac3a in dq_remfirst queue/dq_remfirst.c:45
#1 0x58fd1efe in local_accept local/local_accept.c:141
#2 0x58f66df6 in psock_accept socket/accept.c:149
apache#3 0x58f672a4 in accept4 socket/accept.c:280
apache#4 0x5be9ee0c in accept net/lib_accept.c:50
apache#5 0x592d6a5d in uv__accept libuv/src/unix/core.c:502
apache#6 0x5930d83b in uv__server_io libuv/src/unix/stream.c:550
apache#7 0x592efbde in uv__io_poll libuv/src/unix/posix-poll.c:335
apache#8 0x592d649a in uv_run libuv/src/unix/core.c:387
apache#9 0x5a7180f7 in service_schedule_loop service/common/service_loop.c:146
apache#10 0x591f300b in pthread_startup pthread/pthread_create.c:59
apache#11 0x5be8134f in pthread_start pthread/pthread_create.c:139
apache#12 0x58ee2762 in pre_start sim/sim_initialstate.c:53
Signed-off-by: zhanghongyu <[email protected]>1 parent 427f8a1 commit 3db1654
1 file changed
+29
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
69 | 97 | | |
70 | 98 | | |
71 | | - | |
| 99 | + | |
72 | 100 | | |
73 | 101 | | |
74 | 102 | | |
| |||
0 commit comments