diff -r e22c29b7ee2f -r 7b73058d782e libidav/resource.c --- a/libidav/resource.c Fri Mar 18 15:08:30 2016 +0100 +++ b/libidav/resource.c Fri Mar 18 19:54:36 2016 +0100 @@ -953,14 +953,18 @@ //printf("%.*s\n\n", request->size, request->space); //printf("%.*s\n\n", response->size, response->space); + ucx_buffer_free(request); + long status = 0; curl_easy_getinfo (handle, CURLINFO_RESPONSE_CODE, &status); if(ret == CURLE_OK && (status >= 200 && status < 300)) { LockDiscovery lock; if(parse_lock_response(sn, response, &lock)) { sn->error = DAV_ERROR; + ucx_buffer_free(response); return -1; } + ucx_buffer_free(response); DavLock *l = dav_create_lock(sn, lock.locktoken, lock.timeout); free(lock.locktoken); @@ -983,6 +987,7 @@ } } else { dav_session_set_error(sn, ret, status); + ucx_buffer_free(response); return -1; } }