While trying to memory-tune code which we are working on based on Apache Flood, an apr project, I noticed some potentially memory-leak prone code. While alloc_socket() called by apr_socket_create() does an apr_palloc() to allocate memory for a socket's remote_addr member, the apr_socket_connect() function sets the remote_addr directly to the apr_sockaddr_t * which it passes. The problem is that that defeats the purpose of allocating a buffer for it, since you're replacing with a new pointer which presumably also had to allocate its space (and the typical apr_socket_addr_get() would do that). So we need to use a memcpy() instead!

-Norman Tuttle, developer, OpenDemand Systems, [EMAIL PROTECTED]

PS Question: how many similar issues exist in the current state of the APR?



Reply via email to