mirror of
git://anongit.mindrot.org/openssh.git
synced 2024-11-24 10:53:24 +08:00
- deraadt@cvs.openbsd.org 2002/06/23 09:30:14
[sftp-client.c sftp-client.h sftp-common.c sftp-int.c sftp-server.c sftp.c] bunch of u_int vs int stuff
This commit is contained in:
parent
5c3855210e
commit
b1f483f472
@ -10,6 +10,10 @@
|
||||
[scard.c ssh-dss.c ssh-rsa.c sshconnect.c sshconnect2.c sshd.c sshlogin.c
|
||||
sshpty.c]
|
||||
various KNF and %d for unsigned
|
||||
- deraadt@cvs.openbsd.org 2002/06/23 09:30:14
|
||||
[sftp-client.c sftp-client.h sftp-common.c sftp-int.c sftp-server.c
|
||||
sftp.c]
|
||||
bunch of u_int vs int stuff
|
||||
|
||||
20020623
|
||||
- (stevesk) [configure.ac] bug #255 LOGIN_NEEDS_UTMPX for AIX.
|
||||
@ -1054,4 +1058,4 @@
|
||||
- (stevesk) entropy.c: typo in debug message
|
||||
- (djm) ssh-keygen -i needs seeded RNG; report from markus@
|
||||
|
||||
$Id: ChangeLog,v 1.2256 2002/06/23 21:23:20 mouring Exp $
|
||||
$Id: ChangeLog,v 1.2257 2002/06/23 21:27:18 mouring Exp $
|
||||
|
@ -28,7 +28,7 @@
|
||||
/* XXX: copy between two remote sites */
|
||||
|
||||
#include "includes.h"
|
||||
RCSID("$OpenBSD: sftp-client.c,v 1.32 2002/06/09 13:32:01 markus Exp $");
|
||||
RCSID("$OpenBSD: sftp-client.c,v 1.33 2002/06/23 09:30:14 deraadt Exp $");
|
||||
|
||||
#include "openbsd-compat/fake-queue.h"
|
||||
|
||||
@ -88,7 +88,7 @@ get_msg(int fd, Buffer *m)
|
||||
|
||||
msg_len = GET_32BIT(buf);
|
||||
if (msg_len > 256 * 1024)
|
||||
fatal("Received message too long %d", msg_len);
|
||||
fatal("Received message too long %u", msg_len);
|
||||
|
||||
while (msg_len) {
|
||||
len = atomicio(read, fd, buf, MIN(msg_len, sizeof(buf)));
|
||||
@ -113,7 +113,7 @@ send_string_request(int fd, u_int id, u_int code, char *s,
|
||||
buffer_put_int(&msg, id);
|
||||
buffer_put_string(&msg, s, len);
|
||||
send_msg(fd, &msg);
|
||||
debug3("Sent message fd %d T:%d I:%d", fd, code, id);
|
||||
debug3("Sent message fd %d T:%u I:%u", fd, code, id);
|
||||
buffer_free(&msg);
|
||||
}
|
||||
|
||||
@ -129,12 +129,12 @@ send_string_attrs_request(int fd, u_int id, u_int code, char *s,
|
||||
buffer_put_string(&msg, s, len);
|
||||
encode_attrib(&msg, a);
|
||||
send_msg(fd, &msg);
|
||||
debug3("Sent message fd %d T:%d I:%d", fd, code, id);
|
||||
debug3("Sent message fd %d T:%u I:%u", fd, code, id);
|
||||
buffer_free(&msg);
|
||||
}
|
||||
|
||||
static u_int
|
||||
get_status(int fd, int expected_id)
|
||||
get_status(int fd, u_int expected_id)
|
||||
{
|
||||
Buffer msg;
|
||||
u_int type, id, status;
|
||||
@ -145,15 +145,15 @@ get_status(int fd, int expected_id)
|
||||
id = buffer_get_int(&msg);
|
||||
|
||||
if (id != expected_id)
|
||||
fatal("ID mismatch (%d != %d)", id, expected_id);
|
||||
fatal("ID mismatch (%u != %u)", id, expected_id);
|
||||
if (type != SSH2_FXP_STATUS)
|
||||
fatal("Expected SSH2_FXP_STATUS(%d) packet, got %d",
|
||||
fatal("Expected SSH2_FXP_STATUS(%u) packet, got %u",
|
||||
SSH2_FXP_STATUS, type);
|
||||
|
||||
status = buffer_get_int(&msg);
|
||||
buffer_free(&msg);
|
||||
|
||||
debug3("SSH2_FXP_STATUS %d", status);
|
||||
debug3("SSH2_FXP_STATUS %u", status);
|
||||
|
||||
return(status);
|
||||
}
|
||||
@ -171,14 +171,14 @@ get_handle(int fd, u_int expected_id, u_int *len)
|
||||
id = buffer_get_int(&msg);
|
||||
|
||||
if (id != expected_id)
|
||||
fatal("ID mismatch (%d != %d)", id, expected_id);
|
||||
fatal("ID mismatch (%u != %u)", id, expected_id);
|
||||
if (type == SSH2_FXP_STATUS) {
|
||||
int status = buffer_get_int(&msg);
|
||||
|
||||
error("Couldn't get handle: %s", fx2txt(status));
|
||||
return(NULL);
|
||||
} else if (type != SSH2_FXP_HANDLE)
|
||||
fatal("Expected SSH2_FXP_HANDLE(%d) packet, got %d",
|
||||
fatal("Expected SSH2_FXP_HANDLE(%u) packet, got %u",
|
||||
SSH2_FXP_HANDLE, type);
|
||||
|
||||
handle = buffer_get_string(&msg, len);
|
||||
@ -200,9 +200,9 @@ get_decode_stat(int fd, u_int expected_id, int quiet)
|
||||
type = buffer_get_char(&msg);
|
||||
id = buffer_get_int(&msg);
|
||||
|
||||
debug3("Received stat reply T:%d I:%d", type, id);
|
||||
debug3("Received stat reply T:%u I:%u", type, id);
|
||||
if (id != expected_id)
|
||||
fatal("ID mismatch (%d != %d)", id, expected_id);
|
||||
fatal("ID mismatch (%u != %u)", id, expected_id);
|
||||
if (type == SSH2_FXP_STATUS) {
|
||||
int status = buffer_get_int(&msg);
|
||||
|
||||
@ -212,7 +212,7 @@ get_decode_stat(int fd, u_int expected_id, int quiet)
|
||||
error("Couldn't stat remote file: %s", fx2txt(status));
|
||||
return(NULL);
|
||||
} else if (type != SSH2_FXP_ATTRS) {
|
||||
fatal("Expected SSH2_FXP_ATTRS(%d) packet, got %d",
|
||||
fatal("Expected SSH2_FXP_ATTRS(%u) packet, got %u",
|
||||
SSH2_FXP_ATTRS, type);
|
||||
}
|
||||
a = decode_attrib(&msg);
|
||||
@ -224,7 +224,8 @@ get_decode_stat(int fd, u_int expected_id, int quiet)
|
||||
struct sftp_conn *
|
||||
do_init(int fd_in, int fd_out, u_int transfer_buflen, u_int num_requests)
|
||||
{
|
||||
int type, version;
|
||||
u_int type;
|
||||
int version;
|
||||
Buffer msg;
|
||||
struct sftp_conn *ret;
|
||||
|
||||
@ -239,7 +240,7 @@ do_init(int fd_in, int fd_out, u_int transfer_buflen, u_int num_requests)
|
||||
|
||||
/* Expecting a VERSION reply */
|
||||
if ((type = buffer_get_char(&msg)) != SSH2_FXP_VERSION) {
|
||||
error("Invalid packet back from SSH2_FXP_INIT (type %d)",
|
||||
error("Invalid packet back from SSH2_FXP_INIT (type %u)",
|
||||
type);
|
||||
buffer_free(&msg);
|
||||
return(NULL);
|
||||
@ -294,7 +295,7 @@ do_close(struct sftp_conn *conn, char *handle, u_int handle_len)
|
||||
buffer_put_int(&msg, id);
|
||||
buffer_put_string(&msg, handle, handle_len);
|
||||
send_msg(conn->fd_out, &msg);
|
||||
debug3("Sent message SSH2_FXP_CLOSE I:%d", id);
|
||||
debug3("Sent message SSH2_FXP_CLOSE I:%u", id);
|
||||
|
||||
status = get_status(conn->fd_in, id);
|
||||
if (status != SSH2_FX_OK)
|
||||
@ -339,7 +340,7 @@ do_lsreaddir(struct sftp_conn *conn, char *path, int printflag,
|
||||
|
||||
id = expected_id = conn->msg_id++;
|
||||
|
||||
debug3("Sending SSH2_FXP_READDIR I:%d", id);
|
||||
debug3("Sending SSH2_FXP_READDIR I:%u", id);
|
||||
|
||||
buffer_clear(&msg);
|
||||
buffer_put_char(&msg, SSH2_FXP_READDIR);
|
||||
@ -354,10 +355,10 @@ do_lsreaddir(struct sftp_conn *conn, char *path, int printflag,
|
||||
type = buffer_get_char(&msg);
|
||||
id = buffer_get_int(&msg);
|
||||
|
||||
debug3("Received reply T:%d I:%d", type, id);
|
||||
debug3("Received reply T:%u I:%u", type, id);
|
||||
|
||||
if (id != expected_id)
|
||||
fatal("ID mismatch (%d != %d)", id, expected_id);
|
||||
fatal("ID mismatch (%u != %u)", id, expected_id);
|
||||
|
||||
if (type == SSH2_FXP_STATUS) {
|
||||
int status = buffer_get_int(&msg);
|
||||
@ -373,7 +374,7 @@ do_lsreaddir(struct sftp_conn *conn, char *path, int printflag,
|
||||
return(status);
|
||||
}
|
||||
} else if (type != SSH2_FXP_NAME)
|
||||
fatal("Expected SSH2_FXP_NAME(%d) packet, got %d",
|
||||
fatal("Expected SSH2_FXP_NAME(%u) packet, got %u",
|
||||
SSH2_FXP_NAME, type);
|
||||
|
||||
count = buffer_get_int(&msg);
|
||||
@ -584,7 +585,7 @@ do_realpath(struct sftp_conn *conn, char *path)
|
||||
id = buffer_get_int(&msg);
|
||||
|
||||
if (id != expected_id)
|
||||
fatal("ID mismatch (%d != %d)", id, expected_id);
|
||||
fatal("ID mismatch (%u != %u)", id, expected_id);
|
||||
|
||||
if (type == SSH2_FXP_STATUS) {
|
||||
u_int status = buffer_get_int(&msg);
|
||||
@ -592,7 +593,7 @@ do_realpath(struct sftp_conn *conn, char *path)
|
||||
error("Couldn't canonicalise: %s", fx2txt(status));
|
||||
return(NULL);
|
||||
} else if (type != SSH2_FXP_NAME)
|
||||
fatal("Expected SSH2_FXP_NAME(%d) packet, got %d",
|
||||
fatal("Expected SSH2_FXP_NAME(%u) packet, got %u",
|
||||
SSH2_FXP_NAME, type);
|
||||
|
||||
count = buffer_get_int(&msg);
|
||||
@ -690,7 +691,7 @@ do_readlink(struct sftp_conn *conn, char *path)
|
||||
id = buffer_get_int(&msg);
|
||||
|
||||
if (id != expected_id)
|
||||
fatal("ID mismatch (%d != %d)", id, expected_id);
|
||||
fatal("ID mismatch (%u != %u)", id, expected_id);
|
||||
|
||||
if (type == SSH2_FXP_STATUS) {
|
||||
u_int status = buffer_get_int(&msg);
|
||||
@ -698,7 +699,7 @@ do_readlink(struct sftp_conn *conn, char *path)
|
||||
error("Couldn't readlink: %s", fx2txt(status));
|
||||
return(NULL);
|
||||
} else if (type != SSH2_FXP_NAME)
|
||||
fatal("Expected SSH2_FXP_NAME(%d) packet, got %d",
|
||||
fatal("Expected SSH2_FXP_NAME(%u) packet, got %u",
|
||||
SSH2_FXP_NAME, type);
|
||||
|
||||
count = buffer_get_int(&msg);
|
||||
@ -790,7 +791,7 @@ do_download(struct sftp_conn *conn, char *remote_path, char *local_path,
|
||||
attrib_clear(&junk); /* Send empty attributes */
|
||||
encode_attrib(&msg, &junk);
|
||||
send_msg(conn->fd_out, &msg);
|
||||
debug3("Sent message SSH2_FXP_OPEN I:%d P:%s", id, remote_path);
|
||||
debug3("Sent message SSH2_FXP_OPEN I:%u P:%s", id, remote_path);
|
||||
|
||||
handle = get_handle(conn->fd_in, id, &handle_len);
|
||||
if (handle == NULL) {
|
||||
@ -835,7 +836,7 @@ do_download(struct sftp_conn *conn, char *remote_path, char *local_path,
|
||||
get_msg(conn->fd_in, &msg);
|
||||
type = buffer_get_char(&msg);
|
||||
id = buffer_get_int(&msg);
|
||||
debug3("Received reply T:%d I:%d R:%d", type, id, max_req);
|
||||
debug3("Received reply T:%u I:%u R:%d", type, id, max_req);
|
||||
|
||||
/* Find the request in our queue */
|
||||
for(req = TAILQ_FIRST(&requests);
|
||||
@ -862,7 +863,7 @@ do_download(struct sftp_conn *conn, char *remote_path, char *local_path,
|
||||
(unsigned long long)req->offset + len - 1);
|
||||
if (len > req->len)
|
||||
fatal("Received more data than asked for "
|
||||
"%d > %d", len, req->len);
|
||||
"%u > %u", len, req->len);
|
||||
if ((lseek(local_fd, req->offset, SEEK_SET) == -1 ||
|
||||
atomicio(write, local_fd, data, len) != len) &&
|
||||
!write_error) {
|
||||
@ -907,7 +908,7 @@ do_download(struct sftp_conn *conn, char *remote_path, char *local_path,
|
||||
}
|
||||
break;
|
||||
default:
|
||||
fatal("Expected SSH2_FXP_DATA(%d) packet, got %d",
|
||||
fatal("Expected SSH2_FXP_DATA(%u) packet, got %u",
|
||||
SSH2_FXP_DATA, type);
|
||||
}
|
||||
}
|
||||
@ -1006,7 +1007,7 @@ do_upload(struct sftp_conn *conn, char *local_path, char *remote_path,
|
||||
buffer_put_int(&msg, SSH2_FXF_WRITE|SSH2_FXF_CREAT|SSH2_FXF_TRUNC);
|
||||
encode_attrib(&msg, &a);
|
||||
send_msg(conn->fd_out, &msg);
|
||||
debug3("Sent message SSH2_FXP_OPEN I:%d P:%s", id, remote_path);
|
||||
debug3("Sent message SSH2_FXP_OPEN I:%u P:%s", id, remote_path);
|
||||
|
||||
buffer_clear(&msg);
|
||||
|
||||
@ -1051,7 +1052,7 @@ do_upload(struct sftp_conn *conn, char *local_path, char *remote_path,
|
||||
buffer_put_int64(&msg, offset);
|
||||
buffer_put_string(&msg, data, len);
|
||||
send_msg(conn->fd_out, &msg);
|
||||
debug3("Sent message SSH2_FXP_WRITE I:%d O:%llu S:%u",
|
||||
debug3("Sent message SSH2_FXP_WRITE I:%u O:%llu S:%u",
|
||||
id, (unsigned long long)offset, len);
|
||||
} else if (TAILQ_FIRST(&acks) == NULL)
|
||||
break;
|
||||
@ -1081,7 +1082,7 @@ do_upload(struct sftp_conn *conn, char *local_path, char *remote_path,
|
||||
ack = TAILQ_NEXT(ack, tq))
|
||||
;
|
||||
if (ack == NULL)
|
||||
fatal("Can't find request for ID %d", r_id);
|
||||
fatal("Can't find request for ID %u", r_id);
|
||||
TAILQ_REMOVE(&acks, ack, tq);
|
||||
|
||||
if (status != SSH2_FX_OK) {
|
||||
@ -1091,7 +1092,7 @@ do_upload(struct sftp_conn *conn, char *local_path, char *remote_path,
|
||||
close(local_fd);
|
||||
goto done;
|
||||
}
|
||||
debug3("In write loop, ack for %u %d bytes at %llu",
|
||||
debug3("In write loop, ack for %u %u bytes at %llu",
|
||||
ack->id, ack->len, (unsigned long long)ack->offset);
|
||||
++ackid;
|
||||
free(ack);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $OpenBSD: sftp-client.h,v 1.9 2002/02/13 00:59:23 djm Exp $ */
|
||||
/* $OpenBSD: sftp-client.h,v 1.10 2002/06/23 09:30:14 deraadt Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2001,2002 Damien Miller. All rights reserved.
|
||||
@ -41,11 +41,9 @@ struct SFTP_DIRENT {
|
||||
* Initialiase a SSH filexfer connection. Returns -1 on error or
|
||||
* protocol version on success.
|
||||
*/
|
||||
struct sftp_conn *
|
||||
do_init(int, int, u_int, u_int);
|
||||
struct sftp_conn *do_init(int, int, u_int, u_int);
|
||||
|
||||
u_int
|
||||
sftp_proto_version(struct sftp_conn *);
|
||||
u_int sftp_proto_version(struct sftp_conn *);
|
||||
|
||||
/* Close file referred to by 'handle' */
|
||||
int do_close(struct sftp_conn *, char *, u_int);
|
||||
|
@ -24,7 +24,7 @@
|
||||
*/
|
||||
|
||||
#include "includes.h"
|
||||
RCSID("$OpenBSD: sftp-common.c,v 1.5 2001/12/02 02:08:32 deraadt Exp $");
|
||||
RCSID("$OpenBSD: sftp-common.c,v 1.6 2002/06/23 09:30:14 deraadt Exp $");
|
||||
|
||||
#include "buffer.h"
|
||||
#include "bufaux.h"
|
||||
@ -70,6 +70,7 @@ Attrib *
|
||||
decode_attrib(Buffer *b)
|
||||
{
|
||||
static Attrib a;
|
||||
|
||||
attrib_clear(&a);
|
||||
a.flags = buffer_get_int(b);
|
||||
if (a.flags & SSH2_FILEXFER_ATTR_SIZE)
|
||||
@ -88,6 +89,7 @@ decode_attrib(Buffer *b)
|
||||
if (a.flags & SSH2_FILEXFER_ATTR_EXTENDED) {
|
||||
char *type, *data;
|
||||
int i, count;
|
||||
|
||||
count = buffer_get_int(b);
|
||||
for (i = 0; i < count; i++) {
|
||||
type = buffer_get_string(b, NULL);
|
||||
|
@ -26,7 +26,7 @@
|
||||
/* XXX: recursive operations */
|
||||
|
||||
#include "includes.h"
|
||||
RCSID("$OpenBSD: sftp-int.c,v 1.46 2002/03/30 18:51:15 markus Exp $");
|
||||
RCSID("$OpenBSD: sftp-int.c,v 1.47 2002/06/23 09:30:14 deraadt Exp $");
|
||||
|
||||
#include "buffer.h"
|
||||
#include "xmalloc.h"
|
||||
@ -835,7 +835,7 @@ parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd)
|
||||
help();
|
||||
break;
|
||||
case I_VERSION:
|
||||
printf("SFTP protocol version %d\n", sftp_proto_version(conn));
|
||||
printf("SFTP protocol version %u\n", sftp_proto_version(conn));
|
||||
break;
|
||||
default:
|
||||
fatal("%d is not implemented", cmdnum);
|
||||
|
@ -22,7 +22,7 @@
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#include "includes.h"
|
||||
RCSID("$OpenBSD: sftp-server.c,v 1.35 2002/06/06 17:30:11 markus Exp $");
|
||||
RCSID("$OpenBSD: sftp-server.c,v 1.36 2002/06/23 09:30:14 deraadt Exp $");
|
||||
|
||||
#include "buffer.h"
|
||||
#include "bufaux.h"
|
||||
@ -282,7 +282,7 @@ send_status(u_int32_t id, u_int32_t error)
|
||||
"Unknown error" /* Others */
|
||||
};
|
||||
|
||||
TRACE("sent status id %d error %d", id, error);
|
||||
TRACE("sent status id %u error %u", id, error);
|
||||
buffer_init(&msg);
|
||||
buffer_put_char(&msg, SSH2_FXP_STATUS);
|
||||
buffer_put_int(&msg, id);
|
||||
@ -311,7 +311,7 @@ send_data_or_handle(char type, u_int32_t id, char *data, int dlen)
|
||||
static void
|
||||
send_data(u_int32_t id, char *data, int dlen)
|
||||
{
|
||||
TRACE("sent data id %d len %d", id, dlen);
|
||||
TRACE("sent data id %u len %d", id, dlen);
|
||||
send_data_or_handle(SSH2_FXP_DATA, id, data, dlen);
|
||||
}
|
||||
|
||||
@ -322,7 +322,7 @@ send_handle(u_int32_t id, int handle)
|
||||
int hlen;
|
||||
|
||||
handle_to_string(handle, &string, &hlen);
|
||||
TRACE("sent handle id %d handle %d", id, handle);
|
||||
TRACE("sent handle id %u handle %d", id, handle);
|
||||
send_data_or_handle(SSH2_FXP_HANDLE, id, string, hlen);
|
||||
xfree(string);
|
||||
}
|
||||
@ -337,7 +337,7 @@ send_names(u_int32_t id, int count, Stat *stats)
|
||||
buffer_put_char(&msg, SSH2_FXP_NAME);
|
||||
buffer_put_int(&msg, id);
|
||||
buffer_put_int(&msg, count);
|
||||
TRACE("sent names id %d count %d", id, count);
|
||||
TRACE("sent names id %u count %d", id, count);
|
||||
for (i = 0; i < count; i++) {
|
||||
buffer_put_cstring(&msg, stats[i].name);
|
||||
buffer_put_cstring(&msg, stats[i].long_name);
|
||||
@ -352,7 +352,7 @@ send_attrib(u_int32_t id, Attrib *a)
|
||||
{
|
||||
Buffer msg;
|
||||
|
||||
TRACE("sent attrib id %d have 0x%x", id, a->flags);
|
||||
TRACE("sent attrib id %u have 0x%x", id, a->flags);
|
||||
buffer_init(&msg);
|
||||
buffer_put_char(&msg, SSH2_FXP_ATTRS);
|
||||
buffer_put_int(&msg, id);
|
||||
@ -391,7 +391,7 @@ process_open(void)
|
||||
a = get_attrib();
|
||||
flags = flags_from_portable(pflags);
|
||||
mode = (a->flags & SSH2_FILEXFER_ATTR_PERMISSIONS) ? a->perm : 0666;
|
||||
TRACE("open id %d name %s flags %d mode 0%o", id, name, pflags, mode);
|
||||
TRACE("open id %u name %s flags %d mode 0%o", id, name, pflags, mode);
|
||||
fd = open(name, flags, mode);
|
||||
if (fd < 0) {
|
||||
status = errno_to_portable(errno);
|
||||
@ -417,7 +417,7 @@ process_close(void)
|
||||
|
||||
id = get_int();
|
||||
handle = get_handle();
|
||||
TRACE("close id %d handle %d", id, handle);
|
||||
TRACE("close id %u handle %d", id, handle);
|
||||
ret = handle_close(handle);
|
||||
status = (ret == -1) ? errno_to_portable(errno) : SSH2_FX_OK;
|
||||
send_status(id, status);
|
||||
@ -436,7 +436,7 @@ process_read(void)
|
||||
off = get_int64();
|
||||
len = get_int();
|
||||
|
||||
TRACE("read id %d handle %d off %llu len %d", id, handle,
|
||||
TRACE("read id %u handle %d off %llu len %d", id, handle,
|
||||
(u_int64_t)off, len);
|
||||
if (len > sizeof buf) {
|
||||
len = sizeof buf;
|
||||
@ -477,7 +477,7 @@ process_write(void)
|
||||
off = get_int64();
|
||||
data = get_string(&len);
|
||||
|
||||
TRACE("write id %d handle %d off %llu len %d", id, handle,
|
||||
TRACE("write id %u handle %d off %llu len %d", id, handle,
|
||||
(u_int64_t)off, len);
|
||||
fd = handle_to_fd(handle);
|
||||
if (fd >= 0) {
|
||||
@ -512,7 +512,7 @@ process_do_stat(int do_lstat)
|
||||
|
||||
id = get_int();
|
||||
name = get_string(NULL);
|
||||
TRACE("%sstat id %d name %s", do_lstat ? "l" : "", id, name);
|
||||
TRACE("%sstat id %u name %s", do_lstat ? "l" : "", id, name);
|
||||
ret = do_lstat ? lstat(name, &st) : stat(name, &st);
|
||||
if (ret < 0) {
|
||||
status = errno_to_portable(errno);
|
||||
@ -548,7 +548,7 @@ process_fstat(void)
|
||||
|
||||
id = get_int();
|
||||
handle = get_handle();
|
||||
TRACE("fstat id %d handle %d", id, handle);
|
||||
TRACE("fstat id %u handle %d", id, handle);
|
||||
fd = handle_to_fd(handle);
|
||||
if (fd >= 0) {
|
||||
ret = fstat(fd, &st);
|
||||
@ -582,13 +582,12 @@ process_setstat(void)
|
||||
Attrib *a;
|
||||
u_int32_t id;
|
||||
char *name;
|
||||
int ret;
|
||||
int status = SSH2_FX_OK;
|
||||
int status = SSH2_FX_OK, ret;
|
||||
|
||||
id = get_int();
|
||||
name = get_string(NULL);
|
||||
a = get_attrib();
|
||||
TRACE("setstat id %d name %s", id, name);
|
||||
TRACE("setstat id %u name %s", id, name);
|
||||
if (a->flags & SSH2_FILEXFER_ATTR_SIZE) {
|
||||
ret = truncate(name, a->size);
|
||||
if (ret == -1)
|
||||
@ -625,7 +624,7 @@ process_fsetstat(void)
|
||||
id = get_int();
|
||||
handle = get_handle();
|
||||
a = get_attrib();
|
||||
TRACE("fsetstat id %d handle %d", id, handle);
|
||||
TRACE("fsetstat id %u handle %d", id, handle);
|
||||
fd = handle_to_fd(handle);
|
||||
name = handle_to_name(handle);
|
||||
if (fd < 0 || name == NULL) {
|
||||
@ -677,7 +676,7 @@ process_opendir(void)
|
||||
|
||||
id = get_int();
|
||||
path = get_string(NULL);
|
||||
TRACE("opendir id %d path %s", id, path);
|
||||
TRACE("opendir id %u path %s", id, path);
|
||||
dirp = opendir(path);
|
||||
if (dirp == NULL) {
|
||||
status = errno_to_portable(errno);
|
||||
@ -713,13 +712,13 @@ ls_file(char *name, struct stat *st)
|
||||
if ((pw = getpwuid(st->st_uid)) != NULL) {
|
||||
user = pw->pw_name;
|
||||
} else {
|
||||
snprintf(ubuf, sizeof ubuf, "%d", st->st_uid);
|
||||
snprintf(ubuf, sizeof ubuf, "%u", st->st_uid);
|
||||
user = ubuf;
|
||||
}
|
||||
if ((gr = getgrgid(st->st_gid)) != NULL) {
|
||||
group = gr->gr_name;
|
||||
} else {
|
||||
snprintf(gbuf, sizeof gbuf, "%d", st->st_gid);
|
||||
snprintf(gbuf, sizeof gbuf, "%u", st->st_gid);
|
||||
group = gbuf;
|
||||
}
|
||||
if (ltime != NULL) {
|
||||
@ -749,7 +748,7 @@ process_readdir(void)
|
||||
|
||||
id = get_int();
|
||||
handle = get_handle();
|
||||
TRACE("readdir id %d handle %d", id, handle);
|
||||
TRACE("readdir id %u handle %d", id, handle);
|
||||
dirp = handle_to_dir(handle);
|
||||
path = handle_to_name(handle);
|
||||
if (dirp == NULL || path == NULL) {
|
||||
@ -759,6 +758,7 @@ process_readdir(void)
|
||||
char pathname[1024];
|
||||
Stat *stats;
|
||||
int nstats = 10, count = 0, i;
|
||||
|
||||
stats = xmalloc(nstats * sizeof(Stat));
|
||||
while ((dp = readdir(dirp)) != NULL) {
|
||||
if (count >= nstats) {
|
||||
@ -802,7 +802,7 @@ process_remove(void)
|
||||
|
||||
id = get_int();
|
||||
name = get_string(NULL);
|
||||
TRACE("remove id %d name %s", id, name);
|
||||
TRACE("remove id %u name %s", id, name);
|
||||
ret = unlink(name);
|
||||
status = (ret == -1) ? errno_to_portable(errno) : SSH2_FX_OK;
|
||||
send_status(id, status);
|
||||
@ -822,7 +822,7 @@ process_mkdir(void)
|
||||
a = get_attrib();
|
||||
mode = (a->flags & SSH2_FILEXFER_ATTR_PERMISSIONS) ?
|
||||
a->perm & 0777 : 0777;
|
||||
TRACE("mkdir id %d name %s mode 0%o", id, name, mode);
|
||||
TRACE("mkdir id %u name %s mode 0%o", id, name, mode);
|
||||
ret = mkdir(name, mode);
|
||||
status = (ret == -1) ? errno_to_portable(errno) : SSH2_FX_OK;
|
||||
send_status(id, status);
|
||||
@ -838,7 +838,7 @@ process_rmdir(void)
|
||||
|
||||
id = get_int();
|
||||
name = get_string(NULL);
|
||||
TRACE("rmdir id %d name %s", id, name);
|
||||
TRACE("rmdir id %u name %s", id, name);
|
||||
ret = rmdir(name);
|
||||
status = (ret == -1) ? errno_to_portable(errno) : SSH2_FX_OK;
|
||||
send_status(id, status);
|
||||
@ -858,7 +858,7 @@ process_realpath(void)
|
||||
xfree(path);
|
||||
path = xstrdup(".");
|
||||
}
|
||||
TRACE("realpath id %d path %s", id, path);
|
||||
TRACE("realpath id %u path %s", id, path);
|
||||
if (realpath(path, resolvedname) == NULL) {
|
||||
send_status(id, errno_to_portable(errno));
|
||||
} else {
|
||||
@ -881,7 +881,7 @@ process_rename(void)
|
||||
id = get_int();
|
||||
oldpath = get_string(NULL);
|
||||
newpath = get_string(NULL);
|
||||
TRACE("rename id %d old %s new %s", id, oldpath, newpath);
|
||||
TRACE("rename id %u old %s new %s", id, oldpath, newpath);
|
||||
/* fail if 'newpath' exists */
|
||||
if (stat(newpath, &st) == -1) {
|
||||
ret = rename(oldpath, newpath);
|
||||
@ -902,7 +902,7 @@ process_readlink(void)
|
||||
|
||||
id = get_int();
|
||||
path = get_string(NULL);
|
||||
TRACE("readlink id %d path %s", id, path);
|
||||
TRACE("readlink id %u path %s", id, path);
|
||||
if ((len = readlink(path, link, sizeof(link) - 1)) == -1)
|
||||
send_status(id, errno_to_portable(errno));
|
||||
else {
|
||||
@ -927,7 +927,7 @@ process_symlink(void)
|
||||
id = get_int();
|
||||
oldpath = get_string(NULL);
|
||||
newpath = get_string(NULL);
|
||||
TRACE("symlink id %d old %s new %s", id, oldpath, newpath);
|
||||
TRACE("symlink id %u old %s new %s", id, oldpath, newpath);
|
||||
/* fail if 'newpath' exists */
|
||||
if (stat(newpath, &st) == -1) {
|
||||
ret = symlink(oldpath, newpath);
|
||||
|
5
sftp.c
5
sftp.c
@ -24,7 +24,7 @@
|
||||
|
||||
#include "includes.h"
|
||||
|
||||
RCSID("$OpenBSD: sftp.c,v 1.29 2002/04/02 17:37:48 markus Exp $");
|
||||
RCSID("$OpenBSD: sftp.c,v 1.30 2002/06/23 09:30:14 deraadt Exp $");
|
||||
|
||||
/* XXX: short-form remote directory listings (like 'ls -C') */
|
||||
|
||||
@ -53,8 +53,10 @@ static void
|
||||
connect_to_server(char *path, char **args, int *in, int *out, pid_t *sshpid)
|
||||
{
|
||||
int c_in, c_out;
|
||||
|
||||
#ifdef USE_PIPES
|
||||
int pin[2], pout[2];
|
||||
|
||||
if ((pipe(pin) == -1) || (pipe(pout) == -1))
|
||||
fatal("pipe: %s", strerror(errno));
|
||||
*in = pin[0];
|
||||
@ -63,6 +65,7 @@ connect_to_server(char *path, char **args, int *in, int *out, pid_t *sshpid)
|
||||
c_out = pin[1];
|
||||
#else /* USE_PIPES */
|
||||
int inout[2];
|
||||
|
||||
if (socketpair(AF_UNIX, SOCK_STREAM, 0, inout) == -1)
|
||||
fatal("socketpair: %s", strerror(errno));
|
||||
*in = *out = inout[0];
|
||||
|
Loading…
Reference in New Issue
Block a user