kopia lustrzana https://gitlab.com/sane-project/backends
Merge branch 'escl-clean' into 'master'
escl - release memory and close descriptor. See merge request sane-project/backends!435merge-requests/463/merge
commit
10408cfa99
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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));
|
||||
|
|
Ładowanie…
Reference in New Issue