Migrate pnetlibs.c malloc/free to pmem_malloc/pmem_free
This commit is contained in:
parent
fd19b075ae
commit
84c8d2a0ee
|
|
@ -41,6 +41,7 @@
|
|||
#include "pdevice.h"
|
||||
#include "pfile.h"
|
||||
#include "plibs.h"
|
||||
#include "pmem.h"
|
||||
#include "pnetlibs.h"
|
||||
#include "ppath.h"
|
||||
#include "prun.h"
|
||||
|
|
@ -279,7 +280,7 @@ static void rm_all(void *vpath, ppath_stat *st) {
|
|||
rmdir(path);
|
||||
} else
|
||||
pfile_delete(path);
|
||||
free(path);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, path);
|
||||
}
|
||||
|
||||
static void rm_ign(void *vpath, ppath_stat *st) {
|
||||
|
|
@ -295,7 +296,7 @@ static void rm_ign(void *vpath, ppath_stat *st) {
|
|||
rmdir(path);
|
||||
} else if (ign)
|
||||
pfile_delete(path);
|
||||
free(path);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, path);
|
||||
}
|
||||
|
||||
int psync_rmdir_with_trashes(const char *path) {
|
||||
|
|
@ -370,7 +371,7 @@ int psync_get_remote_file_checksum(psync_fileid_t fileid, unsigned char *hexsum,
|
|||
result = papi_find_result2(res, "result", PARAM_NUM)->num;
|
||||
if (result) {
|
||||
pdbg_logf(D_WARNING, "checksumfile returned error %lu", (unsigned long)result);
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, res);
|
||||
return psync_handle_api_result(result);
|
||||
}
|
||||
meta = papi_find_result2(res, "metadata", PARAM_HASH);
|
||||
|
|
@ -388,7 +389,7 @@ int psync_get_remote_file_checksum(psync_fileid_t fileid, unsigned char *hexsum,
|
|||
psql_bind_lstr(sres, 3, checksum->str, checksum->length);
|
||||
psql_run_free(sres);
|
||||
memcpy(hexsum, checksum->str, checksum->length);
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, res);
|
||||
return PSYNC_NET_OK;
|
||||
}
|
||||
|
||||
|
|
@ -412,7 +413,7 @@ int psync_get_local_file_checksum(const char *restrict filename,
|
|||
fd = pfile_open(filename, O_RDONLY, 0);
|
||||
if (fd == INVALID_HANDLE_VALUE)
|
||||
return PSYNC_NET_PERMFAIL;
|
||||
buff = malloc(PSYNC_COPY_BUFFER_SIZE);
|
||||
buff = pmem_malloc(PMEM_SUBSYS_OTHER, PSYNC_COPY_BUFFER_SIZE);
|
||||
if (!buff) {
|
||||
pfile_close(fd);
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
|
|
@ -456,7 +457,7 @@ retry:
|
|||
pfile_seek(fd, 0, SEEK_SET);
|
||||
goto retry;
|
||||
}
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, buff);
|
||||
pfile_close(fd);
|
||||
psync_hash_final(hashbin, &hctx);
|
||||
psync_binhex(hexsum, hashbin, PSYNC_HASH_DIGEST_LEN);
|
||||
|
|
@ -464,7 +465,7 @@ retry:
|
|||
*fsize = pfile_stat_size(&st);
|
||||
return PSYNC_NET_OK;
|
||||
err1:
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, buff);
|
||||
pfile_close(fd);
|
||||
return PSYNC_NET_PERMFAIL;
|
||||
}
|
||||
|
|
@ -488,7 +489,7 @@ int psync_get_local_file_checksum_part(const char *restrict filename,
|
|||
return PSYNC_NET_PERMFAIL;
|
||||
if (pdbg_unlikely(fstat(fd, &st)))
|
||||
goto err1;
|
||||
buff = malloc(PSYNC_COPY_BUFFER_SIZE);
|
||||
buff = pmem_malloc(PMEM_SUBSYS_OTHER, PSYNC_COPY_BUFFER_SIZE);
|
||||
if (!buff) {
|
||||
pfile_close(fd);
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
|
|
@ -519,7 +520,7 @@ int psync_get_local_file_checksum_part(const char *restrict filename,
|
|||
if (++cnt % 16 == 0)
|
||||
psys_sleep_milliseconds(5);
|
||||
}
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, buff);
|
||||
pfile_close(fd);
|
||||
psync_hash_final(hashbin, &hctx);
|
||||
psync_binhex(hexsum, hashbin, PSYNC_HASH_DIGEST_LEN);
|
||||
|
|
@ -529,7 +530,7 @@ int psync_get_local_file_checksum_part(const char *restrict filename,
|
|||
*fsize = pfile_stat_size(&st);
|
||||
return PSYNC_NET_OK;
|
||||
err2:
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, buff);
|
||||
err1:
|
||||
pfile_close(fd);
|
||||
return PSYNC_NET_PERMFAIL;
|
||||
|
|
@ -576,7 +577,7 @@ int psync_copy_local_file_if_checksum_matches(const char *source,
|
|||
if (pdbg_unlikely(dfd == INVALID_HANDLE_VALUE))
|
||||
goto err1;
|
||||
psync_hash_init(&hctx);
|
||||
buff = malloc(PSYNC_COPY_BUFFER_SIZE);
|
||||
buff = pmem_malloc(PMEM_SUBSYS_OTHER, PSYNC_COPY_BUFFER_SIZE);
|
||||
if (!buff) {
|
||||
pfile_close(dfd);
|
||||
pfile_close(sfd);
|
||||
|
|
@ -601,13 +602,13 @@ int psync_copy_local_file_if_checksum_matches(const char *source,
|
|||
if (pdbg_unlikely(memcmp(hexsum, hashhex, PSYNC_HASH_DIGEST_HEXLEN)) ||
|
||||
pdbg_unlikely(pfile_sync(dfd)))
|
||||
goto err2;
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, buff);
|
||||
if (pdbg_unlikely(pfile_close(dfd)))
|
||||
goto err1;
|
||||
pfile_close(sfd);
|
||||
return PSYNC_NET_OK;
|
||||
err2:
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, buff);
|
||||
pfile_close(dfd);
|
||||
pfile_delete(destination);
|
||||
err1:
|
||||
|
|
@ -871,7 +872,7 @@ psync_http_socket *psync_http_connect(const char *host, const char *path,
|
|||
goto err0;
|
||||
} else
|
||||
pdbg_logf(D_NOTICE, "got connection to %s from cache", host);
|
||||
readbuff = malloc(PSYNC_HTTP_RESP_BUFFER);
|
||||
readbuff = pmem_malloc(PMEM_SUBSYS_OTHER, PSYNC_HTTP_RESP_BUFFER);
|
||||
if (!readbuff) {
|
||||
psock_close(sock);
|
||||
goto err0;
|
||||
|
|
@ -965,13 +966,13 @@ cont:
|
|||
ex:
|
||||
rl = ptr - readbuff;
|
||||
if (rl == rb) {
|
||||
free(readbuff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, readbuff);
|
||||
readbuff = NULL;
|
||||
}
|
||||
hsock = (psync_http_socket *)malloc(
|
||||
hsock = (psync_http_socket *)pmem_malloc(PMEM_SUBSYS_OTHER,
|
||||
offsetof(psync_http_socket, cachekey) + cl);
|
||||
if (!hsock) {
|
||||
free(readbuff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, readbuff);
|
||||
psock_close(sock);
|
||||
goto err0;
|
||||
}
|
||||
|
|
@ -985,7 +986,7 @@ ex:
|
|||
memcpy(hsock->cachekey, cachekey, cl);
|
||||
return hsock;
|
||||
err1:
|
||||
free(readbuff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, readbuff);
|
||||
psync_socket_close_download(sock);
|
||||
err0:
|
||||
return NULL;
|
||||
|
|
@ -1008,8 +1009,8 @@ void psync_http_close(psync_http_socket *http) {
|
|||
psync_socket_close_download(http->sock);
|
||||
}
|
||||
if (http->readbuff)
|
||||
free(http->readbuff);
|
||||
free(http);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, http->readbuff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, http);
|
||||
}
|
||||
|
||||
int psync_http_readall(psync_http_socket *http, void *buff, int num) {
|
||||
|
|
@ -1029,7 +1030,7 @@ int psync_http_readall(psync_http_socket *http, void *buff, int num) {
|
|||
http->readbuffoff += cp;
|
||||
http->readbytes += cp;
|
||||
if (http->readbuffoff >= http->readbuffsize) {
|
||||
free(http->readbuff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, http->readbuff);
|
||||
http->readbuff = NULL;
|
||||
}
|
||||
if (cp == num)
|
||||
|
|
@ -1090,7 +1091,7 @@ static void connect_cache_thread(void *ptr) {
|
|||
pthread_mutex_unlock(&connect_cache_mutex);
|
||||
if (sock)
|
||||
pdbg_logf(D_NOTICE, "added connection to %s to cache", node->host);
|
||||
free(node);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, node);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1098,7 +1099,7 @@ connect_cache_tree_node_t *connect_cache_create_node(const char *host) {
|
|||
connect_cache_tree_node_t *res;
|
||||
size_t len;
|
||||
len = strlen(host) + 1;
|
||||
res = (connect_cache_tree_node_t *)malloc(
|
||||
res = (connect_cache_tree_node_t *)pmem_malloc(PMEM_SUBSYS_OTHER,
|
||||
offsetof(connect_cache_tree_node_t, host) + len);
|
||||
if (!res)
|
||||
return NULL;
|
||||
|
|
@ -1219,7 +1220,7 @@ psock_t *connect_cache_wait_for_http_connection(const char *host,
|
|||
pthread_cond_wait(&cond, &connect_cache_mutex);
|
||||
} while (!node->ready);
|
||||
pthread_mutex_unlock(&connect_cache_mutex);
|
||||
free(node);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, node);
|
||||
if (sock)
|
||||
pdbg_logf(D_NOTICE, "waited successfully for connection to %s", host);
|
||||
return sock;
|
||||
|
|
@ -1288,16 +1289,16 @@ psync_http_socket *psync_http_connect_multihost(const binresult *hosts,
|
|||
}
|
||||
}
|
||||
}
|
||||
hsock = (psync_http_socket *)malloc(
|
||||
hsock = (psync_http_socket *)pmem_malloc(PMEM_SUBSYS_OTHER,
|
||||
offsetof(psync_http_socket, cachekey) + cl);
|
||||
if (!hsock) {
|
||||
psock_close(sock);
|
||||
return NULL;
|
||||
}
|
||||
hsock->sock = sock;
|
||||
hsock->readbuff = malloc(PSYNC_HTTP_RESP_BUFFER);
|
||||
hsock->readbuff = pmem_malloc(PMEM_SUBSYS_OTHER, PSYNC_HTTP_RESP_BUFFER);
|
||||
if (!hsock->readbuff) {
|
||||
free(hsock);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, hsock);
|
||||
psock_close(sock);
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -1340,16 +1341,16 @@ psync_http_connect_multihost_from_cache(const binresult *hosts,
|
|||
}
|
||||
if (!sock)
|
||||
return NULL;
|
||||
hsock = (psync_http_socket *)malloc(
|
||||
hsock = (psync_http_socket *)pmem_malloc(PMEM_SUBSYS_OTHER,
|
||||
offsetof(psync_http_socket, cachekey) + cl);
|
||||
if (!hsock) {
|
||||
psock_close(sock);
|
||||
return NULL;
|
||||
}
|
||||
hsock->sock = sock;
|
||||
hsock->readbuff = malloc(PSYNC_HTTP_RESP_BUFFER);
|
||||
hsock->readbuff = pmem_malloc(PMEM_SUBSYS_OTHER, PSYNC_HTTP_RESP_BUFFER);
|
||||
if (!hsock->readbuff) {
|
||||
free(hsock);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, hsock);
|
||||
psock_close(sock);
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -1549,7 +1550,7 @@ char *psync_url_decode(const char *s) {
|
|||
size_t slen;
|
||||
char unsigned ch1, ch2;
|
||||
slen = strlen(s);
|
||||
ret = p = (char *)malloc(slen + 1);
|
||||
ret = p = (char *)pmem_malloc(PMEM_SUBSYS_OTHER, slen + 1);
|
||||
if (!ret)
|
||||
return NULL;
|
||||
while (slen--) {
|
||||
|
|
@ -1606,7 +1607,7 @@ static int psync_net_get_checksums(psock_t *api, psync_fileid_t fileid,
|
|||
result = papi_find_result2(res, "result", PARAM_NUM)->num;
|
||||
if (result) {
|
||||
pdbg_logf(D_ERROR, "getchecksumlink returned error %lu", (unsigned long)result);
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, res);
|
||||
return psync_handle_api_result(result);
|
||||
}
|
||||
hosts = papi_find_result2(res, "hosts", PARAM_ARRAY);
|
||||
|
|
@ -1618,7 +1619,7 @@ static int psync_net_get_checksums(psock_t *api, psync_fileid_t fileid,
|
|||
if ((http = psync_http_connect(hosts->array[i]->str, requestpath, 0, 0,
|
||||
cookie)))
|
||||
break;
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, res);
|
||||
if (pdbg_unlikely(!http))
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
if (pdbg_unlikely(psync_http_readall(http, &hdr, sizeof(hdr)) != sizeof(hdr)))
|
||||
|
|
@ -1632,7 +1633,7 @@ static int psync_net_get_checksums(psock_t *api, psync_fileid_t fileid,
|
|||
psync_http_close(http);
|
||||
return PSYNC_NET_OK;
|
||||
}
|
||||
cs = (psync_file_checksums *)malloc(
|
||||
cs = (psync_file_checksums *)pmem_malloc(PMEM_SUBSYS_OTHER,
|
||||
offsetof(psync_file_checksums, blocks) +
|
||||
(sizeof(psync_block_checksum) + sizeof(uint32_t)) * i);
|
||||
if (!cs)
|
||||
|
|
@ -1653,7 +1654,7 @@ static int psync_net_get_checksums(psock_t *api, psync_fileid_t fileid,
|
|||
pdbg_logf(D_NOTICE, "checksums downloaded");
|
||||
return PSYNC_NET_OK;
|
||||
err1:
|
||||
free(cs);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, cs);
|
||||
err0:
|
||||
psync_http_close(http);
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
|
|
@ -1679,10 +1680,10 @@ static int psync_net_get_upload_checksums(psock_t *api,
|
|||
if (result) {
|
||||
pdbg_logf(D_ERROR, "upload_blockchecksums returned error %lu",
|
||||
(unsigned long)result);
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, res);
|
||||
return psync_handle_api_result(result);
|
||||
}
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, res);
|
||||
if (pdbg_unlikely(psync_socket_readall_download(api, &hdr, sizeof(hdr)) !=
|
||||
sizeof(hdr)))
|
||||
goto err0;
|
||||
|
|
@ -1698,7 +1699,7 @@ static int psync_net_get_upload_checksums(psock_t *api,
|
|||
}
|
||||
if (!hdr.filesize)
|
||||
return PSYNC_NET_PERMFAIL;
|
||||
cs = (psync_file_checksums *)malloc(
|
||||
cs = (psync_file_checksums *)pmem_malloc(PMEM_SUBSYS_OTHER,
|
||||
offsetof(psync_file_checksums, blocks) +
|
||||
(sizeof(psync_block_checksum) + sizeof(uint32_t)) * i);
|
||||
if (!cs)
|
||||
|
|
@ -1717,7 +1718,7 @@ static int psync_net_get_upload_checksums(psock_t *api,
|
|||
*checksums = cs;
|
||||
return PSYNC_NET_OK;
|
||||
err1:
|
||||
free(cs);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, cs);
|
||||
err0:
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
}
|
||||
|
|
@ -1734,7 +1735,7 @@ static psync_block_checksum
|
|||
**psync_net_get_sorted_checksums(psync_file_checksums *checksums){
|
||||
psync_block_checksum **ret;
|
||||
uint32_t i;
|
||||
ret=malloc(sizeof(psync_block_checksum *) * checksums->blockcnt);
|
||||
ret=pmem_malloc(PMEM_SUBSYS_OTHER, sizeof(psync_block_checksum *) * checksums->blockcnt);
|
||||
if (!ret)
|
||||
return NULL;
|
||||
for (i=0; i<checksums->blockcnt; i++)
|
||||
|
|
@ -1773,7 +1774,7 @@ psync_net_create_hash(const psync_file_checksums *checksums) {
|
|||
break;
|
||||
cnt += 2;
|
||||
}
|
||||
h = (psync_file_checksum_hash *)malloc(
|
||||
h = (psync_file_checksum_hash *)pmem_malloc(PMEM_SUBSYS_OTHER,
|
||||
offsetof(psync_file_checksum_hash, elements) + sizeof(uint32_t) * cnt);
|
||||
if (!h)
|
||||
return NULL;
|
||||
|
|
@ -1993,7 +1994,7 @@ static void psync_net_check_file_for_blocks(
|
|||
else
|
||||
buffersize = PSYNC_COPY_BUFFER_SIZE;
|
||||
hbuffersize = buffersize / 2;
|
||||
buff = malloc(buffersize);
|
||||
buff = pmem_malloc(PMEM_SUBSYS_OTHER, buffersize);
|
||||
if (!buff) {
|
||||
pfile_close(fd);
|
||||
return;
|
||||
|
|
@ -2001,7 +2002,7 @@ static void psync_net_check_file_for_blocks(
|
|||
rd = pfile_read(fd, buff, hbuffersize);
|
||||
if (unlikely(rd < (ssize_t)hbuffersize)) {
|
||||
if (rd < (ssize_t)checksums->blocksize) {
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, buff);
|
||||
pfile_close(fd);
|
||||
return;
|
||||
}
|
||||
|
|
@ -2067,7 +2068,7 @@ static void psync_net_check_file_for_blocks(
|
|||
adler = adler32_roll(adler, buff[outbyteoff++], buff[inbyteoff++],
|
||||
checksums->blocksize);
|
||||
}
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, buff);
|
||||
pfile_close(fd);
|
||||
}
|
||||
|
||||
|
|
@ -2088,23 +2089,23 @@ int psync_net_download_ranges(psync_list *ranges, psync_fileid_t fileid,
|
|||
else if (pdbg_unlikely(rt == PSYNC_NET_TEMPFAIL))
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
if (pdbg_unlikely(checksums->filesize != filesize)) {
|
||||
free(checksums);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, checksums);
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
}
|
||||
hash = psync_net_create_hash(checksums);
|
||||
blockactions = malloc(sizeof(psync_block_action) * checksums->blockcnt);
|
||||
blockactions = pmem_malloc(PMEM_SUBSYS_OTHER, sizeof(psync_block_action) * checksums->blockcnt);
|
||||
if (!blockactions) {
|
||||
free(checksums);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, checksums);
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
}
|
||||
memset(blockactions, 0, sizeof(psync_block_action) * checksums->blockcnt);
|
||||
for (i = 0; i < filecnt; i++)
|
||||
psync_net_check_file_for_blocks(files[i], checksums, hash, blockactions, i);
|
||||
free(hash);
|
||||
range = malloc(sizeof(psync_range_list_t));
|
||||
pmem_free(PMEM_SUBSYS_OTHER, hash);
|
||||
range = pmem_malloc(PMEM_SUBSYS_OTHER, sizeof(psync_range_list_t));
|
||||
if (!range) {
|
||||
free(blockactions);
|
||||
free(checksums);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, blockactions);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, checksums);
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
}
|
||||
range->len = checksums->blocksize;
|
||||
|
|
@ -2126,11 +2127,11 @@ int psync_net_download_ranges(psync_list *ranges, psync_fileid_t fileid,
|
|||
(range->type == PSYNC_RANGE_COPY &&
|
||||
(range->filename != files[blockactions[i].idx] ||
|
||||
range->off + range->len != blockactions[i].off))) {
|
||||
range = malloc(sizeof(psync_range_list_t));
|
||||
range = pmem_malloc(PMEM_SUBSYS_OTHER, sizeof(psync_range_list_t));
|
||||
if (!range) {
|
||||
psync_list_for_each_element_call(ranges, psync_range_list_t, list, free);
|
||||
free(blockactions);
|
||||
free(checksums);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, blockactions);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, checksums);
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
}
|
||||
range->len = bs;
|
||||
|
|
@ -2144,11 +2145,11 @@ int psync_net_download_ranges(psync_list *ranges, psync_fileid_t fileid,
|
|||
} else
|
||||
range->len += bs;
|
||||
}
|
||||
free(checksums);
|
||||
free(blockactions);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, checksums);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, blockactions);
|
||||
return PSYNC_NET_OK;
|
||||
fulldownload:
|
||||
range = malloc(sizeof(psync_range_list_t));
|
||||
range = pmem_malloc(PMEM_SUBSYS_OTHER, sizeof(psync_range_list_t));
|
||||
if (!range)
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
range->off = 0;
|
||||
|
|
@ -2182,12 +2183,12 @@ static int check_range_for_blocks(psync_file_checksums *checksums,
|
|||
else
|
||||
buffersize = PSYNC_COPY_BUFFER_SIZE;
|
||||
hbuffersize = buffersize / 2;
|
||||
buff = malloc(buffersize);
|
||||
buff = pmem_malloc(PMEM_SUBSYS_OTHER, buffersize);
|
||||
if (!buff)
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
rd = pfile_read(fd, buff, hbuffersize);
|
||||
if (unlikely(rd < (ssize_t)hbuffersize)) {
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, buff);
|
||||
return PSYNC_NET_OK;
|
||||
} else
|
||||
bufferlen = buffersize;
|
||||
|
|
@ -2223,9 +2224,9 @@ static int check_range_for_blocks(psync_file_checksums *checksums,
|
|||
ur->uploadoffset + ur->len == off + buffoff + outbyteoff)
|
||||
ur->len += blen;
|
||||
else {
|
||||
ur = malloc(sizeof(psync_upload_range_list_t));
|
||||
ur = pmem_malloc(PMEM_SUBSYS_OTHER, sizeof(psync_upload_range_list_t));
|
||||
if (!ur) {
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, buff);
|
||||
pfile_close(fd);
|
||||
psync_list_for_each_element_call(nr, psync_upload_range_list_t, list, free);
|
||||
return -1;
|
||||
|
|
@ -2297,7 +2298,7 @@ static int check_range_for_blocks(psync_file_checksums *checksums,
|
|||
adler = adler32_roll(adler, buff[outbyteoff++], buff[inbyteoff++],
|
||||
checksums->blocksize);
|
||||
}
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, buff);
|
||||
return PSYNC_NET_OK;
|
||||
}
|
||||
|
||||
|
|
@ -2324,7 +2325,7 @@ static void merge_list_to_element(psync_upload_range_list_t *le,
|
|||
pdbg_assertw(psync_list_isempty(rlist));
|
||||
psync_list_add_after(&le->list, &ur->list);
|
||||
psync_list_del(&le->list);
|
||||
free(le);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, le);
|
||||
} else if (ur->uploadoffset == le->uploadoffset) {
|
||||
psync_list_add_before(&le->list, &ur->list);
|
||||
le->uploadoffset += ur->len;
|
||||
|
|
@ -2334,7 +2335,7 @@ static void merge_list_to_element(psync_upload_range_list_t *le,
|
|||
psync_list_add_after(&le->list, &ur->list);
|
||||
le->len -= ur->len;
|
||||
} else {
|
||||
n = malloc(sizeof(psync_upload_range_list_t));
|
||||
n = pmem_malloc(PMEM_SUBSYS_OTHER, sizeof(psync_upload_range_list_t));
|
||||
if (!n) {
|
||||
psync_list_for_each_element_call(rlist, psync_upload_range_list_t, list, free);
|
||||
return;
|
||||
|
|
@ -2375,8 +2376,8 @@ int psync_net_scan_file_for_blocks(psock_t *api, psync_list *rlist,
|
|||
psync_list_init(&nr);
|
||||
if (check_range_for_blocks(checksums, hash, ur->off, ur->len, fd, &nr) ==
|
||||
PSYNC_NET_TEMPFAIL) {
|
||||
free(hash);
|
||||
free(checksums);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, hash);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, checksums);
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
}
|
||||
if (!psync_list_isempty(&nr)) {
|
||||
|
|
@ -2388,8 +2389,8 @@ int psync_net_scan_file_for_blocks(psock_t *api, psync_list *rlist,
|
|||
merge_list_to_element(ur, &nr);
|
||||
}
|
||||
}
|
||||
free(hash);
|
||||
free(checksums);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, hash);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, checksums);
|
||||
return PSYNC_NET_OK;
|
||||
}
|
||||
|
||||
|
|
@ -2416,8 +2417,8 @@ int psync_net_scan_upload_for_blocks(psock_t *api, psync_list *rlist,
|
|||
psync_list_init(&nr);
|
||||
if (check_range_for_blocks(checksums, hash, ur->off, ur->len, fd, &nr) ==
|
||||
PSYNC_NET_TEMPFAIL) {
|
||||
free(hash);
|
||||
free(checksums);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, hash);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, checksums);
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
}
|
||||
if (!psync_list_isempty(&nr)) {
|
||||
|
|
@ -2428,8 +2429,8 @@ int psync_net_scan_upload_for_blocks(psock_t *api, psync_list *rlist,
|
|||
merge_list_to_element(ur, &nr);
|
||||
}
|
||||
}
|
||||
free(hash);
|
||||
free(checksums);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, hash);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, checksums);
|
||||
return PSYNC_NET_OK;
|
||||
}
|
||||
|
||||
|
|
@ -2475,7 +2476,7 @@ static int download_file_revisions(psync_fileid_t fileid) {
|
|||
result = papi_find_result2(res, "result", PARAM_NUM)->num;
|
||||
if (result) {
|
||||
pdbg_logf(D_ERROR, "listrevisions returned error %lu", (unsigned long)result);
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, res);
|
||||
return psync_handle_api_result(result);
|
||||
}
|
||||
revs = papi_find_result2(res, "revisions", PARAM_ARRAY);
|
||||
|
|
@ -2516,7 +2517,7 @@ static int download_file_revisions(psync_fileid_t fileid) {
|
|||
PSYNC_HASH_DIGEST_HEXLEN);
|
||||
psql_run_free(hc);
|
||||
psql_commit();
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, res);
|
||||
return PSYNC_NET_OK;
|
||||
}
|
||||
|
||||
|
|
@ -2544,7 +2545,7 @@ psync_file_lock_t *psync_lock_file(const char *path) {
|
|||
size_t len;
|
||||
int cmp;
|
||||
len = strlen(path) + 1;
|
||||
lock = malloc(offsetof(psync_file_lock_t, filename) + len);
|
||||
lock = pmem_malloc(PMEM_SUBSYS_OTHER, offsetof(psync_file_lock_t, filename) + len);
|
||||
if (!lock)
|
||||
return NULL;
|
||||
memcpy(lock->filename, path, len);
|
||||
|
|
@ -2570,7 +2571,7 @@ psync_file_lock_t *psync_lock_file(const char *path) {
|
|||
}
|
||||
} else {
|
||||
pthread_mutex_unlock(&file_lock_mutex);
|
||||
free(lock);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, lock);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
|
@ -2584,7 +2585,7 @@ void psync_unlock_file(psync_file_lock_t *lock) {
|
|||
pthread_mutex_lock(&file_lock_mutex);
|
||||
ptree_del(&file_lock_tree, &lock->tree);
|
||||
pthread_mutex_unlock(&file_lock_mutex);
|
||||
free(lock);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, lock);
|
||||
}
|
||||
|
||||
int psync_get_upload_checksum(psync_uploadid_t uploadid, unsigned char *uhash,
|
||||
|
|
@ -2604,13 +2605,13 @@ int psync_get_upload_checksum(psync_uploadid_t uploadid, unsigned char *uhash,
|
|||
}
|
||||
psync_apipool_release(api);
|
||||
if (papi_find_result2(res, "result", PARAM_NUM)->num) {
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, res);
|
||||
return PSYNC_NET_PERMFAIL;
|
||||
}
|
||||
*usize = papi_find_result2(res, "size", PARAM_NUM)->num;
|
||||
memcpy(uhash, papi_find_result2(res, PSYNC_CHECKSUM, PARAM_STR)->str,
|
||||
PSYNC_HASH_DIGEST_HEXLEN);
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, res);
|
||||
return PSYNC_NET_OK;
|
||||
}
|
||||
|
||||
|
|
@ -2641,13 +2642,13 @@ static void psync_send_debug_thread(void *ptr) {
|
|||
pdbg_logf(D_NOTICE, "sending debug %s", str);
|
||||
res = psync_api_run_command("senddebug", params);
|
||||
if (res) {
|
||||
free(res);
|
||||
free(last);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, res);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, last);
|
||||
last = str;
|
||||
} else
|
||||
free(str);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, str);
|
||||
} else
|
||||
free(str);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, str);
|
||||
pthread_mutex_unlock(&m);
|
||||
}
|
||||
|
||||
|
|
@ -2660,7 +2661,7 @@ int psync_send_pdbg_logf(int thread, const char *file, const char *function,
|
|||
ret = pdevice_id();
|
||||
snprintf(format, sizeof(format), "%s %s: %s:%u (function %s): %s\n", ret,
|
||||
psync_thread_name, file, line, function, fmt);
|
||||
free(ret);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, ret);
|
||||
format[sizeof(format) - 1] = 0;
|
||||
ret = NULL;
|
||||
l = 511;
|
||||
|
|
@ -2669,7 +2670,7 @@ int psync_send_pdbg_logf(int thread, const char *file, const char *function,
|
|||
sz = l + 1;
|
||||
tmp = (char *)realloc(ret, sz);
|
||||
if (!tmp) {
|
||||
free(ret);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, ret);
|
||||
return -1;
|
||||
}
|
||||
ret = tmp;
|
||||
|
|
@ -2683,7 +2684,7 @@ int psync_send_pdbg_logf(int thread, const char *file, const char *function,
|
|||
else
|
||||
psync_send_debug_thread(ret);
|
||||
} else
|
||||
free(ret);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, ret);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -2721,7 +2722,7 @@ int psync_do_run_command_res(const char *cmd, size_t cmdlen,
|
|||
*err = putil_strdup(papi_find_result2(res, "error", PARAM_STR)->str);
|
||||
psync_process_api_error(result);
|
||||
}
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_OTHER, res);
|
||||
return (int)result;
|
||||
neterr:
|
||||
if (err)
|
||||
|
|
|
|||
Loading…
Reference in New Issue