Hello! On Wed, Sep 28, 2022 at 10:56:15AM +0800, zjd wrote:
> my module is such: > The pool is created with ngx_create_pool in > module_init_process; I get momery from the pool in the start of > each request, and then use ngx_reset_pool in the end of each > request. > The ngx_reset_pool take pool->large each alloc pointer return > to pool, and each alloc pointer is wild pointer. > And When another get momery from the pool in next request or > next next request..., I maybe get wild pointer address and > access inaccessible addresses, and then coredump. > > maybe the describe is simple in last mail. Ok, so from your description you are getting segfaults, and you don't know why. Note that the ngx_reset_pool() function clears pool->large, and also frees all the ngx_pool_large_t structures (since it resets all pool blocks). That is, l->alloc you are clearing in your patch is not expected to be used anywhere. If clearing it helps, this suggests that there is a bug in your module which results in this freed memory to be used somehow. While clearing l->alloc might appear to help, most likely it is just hiding a bug in your module. Correct solution would be to find the bug in your module and fix it. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx mailing list -- nginx@nginx.org To unsubscribe send an email to nginx-le...@nginx.org