version 1.101, 2013/07/25 00:56:51 |
version 1.101.2.1, 2013/11/08 01:33:56 |
|
|
|
|
if (dir) { |
if (dir) { |
ents = 0; |
ents = 0; |
*dir = xmalloc(sizeof(**dir)); |
*dir = xcalloc(1, sizeof(**dir)); |
(*dir)[0] = NULL; |
(*dir)[0] = NULL; |
} |
} |
|
|
|
|
|
|
if (dir) { |
if (dir) { |
*dir = xrealloc(*dir, ents + 2, sizeof(**dir)); |
*dir = xrealloc(*dir, ents + 2, sizeof(**dir)); |
(*dir)[ents] = xmalloc(sizeof(***dir)); |
(*dir)[ents] = xcalloc(1, sizeof(***dir)); |
(*dir)[ents]->filename = xstrdup(filename); |
(*dir)[ents]->filename = xstrdup(filename); |
(*dir)[ents]->longname = xstrdup(longname); |
(*dir)[ents]->longname = xstrdup(longname); |
memcpy(&(*dir)[ents]->a, a, sizeof(*a)); |
memcpy(&(*dir)[ents]->a, a, sizeof(*a)); |
|
|
/* Don't return partial matches on interrupt */ |
/* Don't return partial matches on interrupt */ |
if (interrupted && dir != NULL && *dir != NULL) { |
if (interrupted && dir != NULL && *dir != NULL) { |
free_sftp_dirents(*dir); |
free_sftp_dirents(*dir); |
*dir = xmalloc(sizeof(**dir)); |
*dir = xcalloc(1, sizeof(**dir)); |
**dir = NULL; |
**dir = NULL; |
} |
} |
|
|
|
|
(unsigned long long)offset, |
(unsigned long long)offset, |
(unsigned long long)offset + buflen - 1, |
(unsigned long long)offset + buflen - 1, |
num_req, max_req); |
num_req, max_req); |
req = xmalloc(sizeof(*req)); |
req = xcalloc(1, sizeof(*req)); |
req->id = conn->msg_id++; |
req->id = conn->msg_id++; |
req->len = buflen; |
req->len = buflen; |
req->offset = offset; |
req->offset = offset; |
|
|
strerror(errno)); |
strerror(errno)); |
|
|
if (len != 0) { |
if (len != 0) { |
ack = xmalloc(sizeof(*ack)); |
ack = xcalloc(1, sizeof(*ack)); |
ack->id = ++id; |
ack->id = ++id; |
ack->offset = offset; |
ack->offset = offset; |
ack->len = len; |
ack->len = len; |