Merge branch 'escl-clean' into 'master'

escl - release memory and close descriptor.

See merge request sane-project/backends!435
merge-requests/463/merge
Ordissimo 2020-05-08 07:01:30 +00:00
commit 10408cfa99
3 zmienionych plików z 10 dodań i 3 usunięć

Wyświetl plik

@ -141,7 +141,7 @@ memory_callback_c(void *contents, size_t size, size_t nmemb, void *userp)
char *str = realloc(mem->memory, mem->size + realsize + 1);
if (str == NULL) {
fprintf(stderr, "not enough memory (realloc returned NULL)\n");
DBG(10, "not enough memory (realloc returned NULL)\n");
return (0);
}
mem->memory = str;
@ -442,6 +442,8 @@ clean_data:
xmlCleanupParser();
xmlMemoryDump();
curl_easy_cleanup(curl_handle);
free(var->memory);
if (var)
free(var->memory);
free(var);
return (scanner);
}

Wyświetl plik

@ -120,7 +120,6 @@ jpeg_RW_src(j_decompress_ptr cinfo, FILE *ctx)
if (cinfo->src == NULL) {
cinfo->src = (struct jpeg_source_mgr *)(*cinfo->mem->alloc_small)
((j_common_ptr) cinfo, JPOOL_PERMANENT, sizeof(my_source_mgr));
src = (my_source_mgr *) cinfo->src;
}
src = (my_source_mgr *) cinfo->src;
src->pub.init_source = init_source;

Wyświetl plik

@ -74,18 +74,24 @@ escl_scan(capabilities_t *scanner, const ESCL_Device *device, char *result)
scan_jobs, result, scanner_start);
escl_curl_url(curl_handle, device, scan_cmd);
curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_callback);
if (scanner->tmp)
fclose(scanner->tmp);
scanner->tmp = tmpfile();
if (scanner->tmp != NULL) {
curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, scanner->tmp);
CURLcode res = curl_easy_perform(curl_handle);
if (res != CURLE_OK) {
DBG( 1, "Unable to scan: %s\n", curl_easy_strerror(res));
fclose(scanner->tmp);
scanner->tmp = NULL;
status = SANE_STATUS_INVAL;
goto cleanup;
}
fseek(scanner->tmp, 0, SEEK_SET);
}
else
status = SANE_STATUS_NO_MEM;
cleanup:
curl_easy_cleanup(curl_handle);
}
DBG(10, "eSCL scan : %s\n", sane_strstatus(status));