uclient crash when trying to abort connection after getting HTTP headers

Rafał Miłecki rafal at milecki.pl
Tue May 25 05:30:00 PDT 2021

I'd like to abort uclient connection after getting HTTP error code in a
response header.

static void foo_header_done_cb(struct uclient *cl)
	if (cl->status_code != 200) {

The problem is that uclient_http_headers_complete() [1] after calling
"header_done" callback still uses the uclient struct. Freeing it results
in a crash. On the other hand calling uclient_disconnect() without
uclient_free() will result in memory leak.

Any hint, please?

[1] https://lxr.openwrt.org/source/uclient/uclient-http.c#L635


More information about the openwrt-devel mailing list