diff --git a/qrexec-lib/buffer.c b/qrexec-lib/buffer.c index f0be787..12bc4eb 100644 --- a/qrexec-lib/buffer.c +++ b/qrexec-lib/buffer.c @@ -67,7 +67,7 @@ Yet the profiling output show they are not significant CPU hogs, so we keep them so simple to make them obviously correct. */ -void buffer_append(struct buffer *b, char *data, int len) +void buffer_append(struct buffer *b, const char *data, int len) { int newsize; char *qdata; diff --git a/qrexec-lib/exec.c b/qrexec-lib/exec.c index a87f505..b593af8 100644 --- a/qrexec-lib/exec.c +++ b/qrexec-lib/exec.c @@ -23,7 +23,7 @@ #include #include -extern void do_exec(char *); +extern void do_exec(const char *); void fix_fds(int fdin, int fdout, int fderr) { @@ -40,7 +40,7 @@ void fix_fds(int fdin, int fdout, int fderr) close(fderr); } -void do_fork_exec(char *cmdline, int *pid, int *stdin_fd, int *stdout_fd, +void do_fork_exec(const char *cmdline, int *pid, int *stdin_fd, int *stdout_fd, int *stderr_fd) { int inpipe[2], outpipe[2], errpipe[2]; diff --git a/qrexec-lib/ioall.c b/qrexec-lib/ioall.c index 2a81df4..ac679a8 100644 --- a/qrexec-lib/ioall.c +++ b/qrexec-lib/ioall.c @@ -25,7 +25,7 @@ #include #include -void perror_wrapper(char * msg) +void perror_wrapper(const char * msg) { int prev=errno; perror(msg); @@ -44,7 +44,7 @@ void set_block(int fd) fcntl(fd, F_SETFL, fl & ~O_NONBLOCK); } -int write_all(int fd, void *buf, int size) +int write_all(int fd, const void *buf, int size) { int written = 0; int ret; diff --git a/qrexec-lib/ioall.h b/qrexec-lib/ioall.h index c9913e8..c822bbe 100644 --- a/qrexec-lib/ioall.h +++ b/qrexec-lib/ioall.h @@ -1,4 +1,4 @@ -int write_all(int fd, void *buf, int size); +int write_all(int fd, const void *buf, int size); int read_all(int fd, void *buf, int size); int copy_fd_all(int fdout, int fdin); void set_nonblock(int fd); diff --git a/qrexec-lib/libqrexec-utils.h b/qrexec-lib/libqrexec-utils.h index 96095cf..b090569 100644 --- a/qrexec-lib/libqrexec-utils.h +++ b/qrexec-lib/libqrexec-utils.h @@ -29,28 +29,28 @@ struct buffer { void buffer_init(struct buffer *b); void buffer_free(struct buffer *b); -void buffer_append(struct buffer *b, char *data, int len); +void buffer_append(struct buffer *b, const char *data, int len); void buffer_remove(struct buffer *b, int len); int buffer_len(struct buffer *b); void *buffer_data(struct buffer *b); -void do_fork_exec(char *cmdline, int *pid, int *stdin_fd, int *stdout_fd, +void do_fork_exec(const char *cmdline, int *pid, int *stdin_fd, int *stdout_fd, int *stderr_fd); int peer_server_init(int port); char *peer_client_init(int dom, int port); void wait_for_vchan_or_argfd(int max, fd_set * rdset, fd_set * wrset); -int read_ready_vchan_ext(); +int read_ready_vchan_ext(void); int read_all(int fd, void *buf, int size); int read_all_vchan_ext(void *buf, int size); -int write_all(int fd, void *buf, int size); +int write_all(int fd, const void *buf, int size); int write_all_vchan_ext(void *buf, int size); -int buffer_space_vchan_ext(); +int buffer_space_vchan_ext(void); void fix_fds(int fdin, int fdout, int fderr); void set_nonblock(int fd); void set_block(int fd); -int get_server_socket(char *); +int get_server_socket(const char *); int do_accept(int s); enum { @@ -60,7 +60,7 @@ enum { }; int flush_client_data(int fd, int client_id, struct buffer *buffer); -int write_stdin(int fd, int client_id, char *data, int len, +int write_stdin(int fd, int client_id, const char *data, int len, struct buffer *buffer); void set_nonblock(int fd); int fork_and_flush_stdin(int fd, struct buffer *buffer); diff --git a/qrexec-lib/libqubes-rpc-filecopy.h b/qrexec-lib/libqubes-rpc-filecopy.h index fcf58e7..8f57728 100644 --- a/qrexec-lib/libqubes-rpc-filecopy.h +++ b/qrexec-lib/libqubes-rpc-filecopy.h @@ -64,7 +64,7 @@ int copy_file(int outfd, int infd, long long size, unsigned long *crc32); char *copy_file_status_to_str(int status); void set_size_limit(long long new_bytes_limit, long long new_files_limit); void set_verbose(int value); -int write_all(int fd, void *buf, int size); +int write_all(int fd, const void *buf, int size); int read_all(int fd, void *buf, int size); int copy_fd_all(int fdout, int fdin); void set_nonblock(int fd); @@ -73,6 +73,6 @@ void set_block(int fd); extern unsigned long Crc32_ComputeBuf( unsigned long inCrc32, const void *buf, size_t bufLen ); -extern int do_unpack(); +extern int do_unpack(void); #endif /* _LIBQUBES_RPC_FILECOPY_H */ diff --git a/qrexec-lib/unix-server.c b/qrexec-lib/unix-server.c index 8be6e1a..7a3512c 100644 --- a/qrexec-lib/unix-server.c +++ b/qrexec-lib/unix-server.c @@ -27,7 +27,7 @@ #include //#include "qrexec.h" -int get_server_socket(char *socket_address) +int get_server_socket(const char *socket_address) { struct sockaddr_un sockname; int s; diff --git a/qrexec-lib/unpack.c b/qrexec-lib/unpack.c index 38bf270..696ca93 100644 --- a/qrexec-lib/unpack.c +++ b/qrexec-lib/unpack.c @@ -38,7 +38,7 @@ int read_all_with_crc(int fd, void *buf, int size) { return ret; } -void send_status_and_crc(int code, char *last_filename) { +void send_status_and_crc(int code, const char *last_filename) { struct result_header hdr; struct result_header_ext hdr_ext; int saved_errno; @@ -58,7 +58,7 @@ void send_status_and_crc(int code, char *last_filename) { errno = saved_errno; } -void do_exit(int code, char *last_filename) +void do_exit(int code, const char *last_filename) { close(0); send_status_and_crc(code, last_filename); @@ -66,7 +66,7 @@ void do_exit(int code, char *last_filename) } void fix_times_and_perms(struct file_header *untrusted_hdr, - char *untrusted_name) + const char *untrusted_name) { struct timeval times[2] = { {untrusted_hdr->atime, untrusted_hdr->atime_nsec / 1000}, @@ -82,7 +82,7 @@ void fix_times_and_perms(struct file_header *untrusted_hdr, void process_one_file_reg(struct file_header *untrusted_hdr, - char *untrusted_name) + const char *untrusted_name) { int ret; int fdout = open(untrusted_name, O_WRONLY | O_CREAT | O_EXCL | O_NOFOLLOW, 0700); /* safe because of chroot */ @@ -105,7 +105,7 @@ void process_one_file_reg(struct file_header *untrusted_hdr, void process_one_file_dir(struct file_header *untrusted_hdr, - char *untrusted_name) + const char *untrusted_name) { // fix perms only when the directory is sent for the second time // it allows to transfer r.x directory contents, as we create it rwx initially @@ -122,7 +122,7 @@ void process_one_file_dir(struct file_header *untrusted_hdr, } void process_one_file_link(struct file_header *untrusted_hdr, - char *untrusted_name) + const char *untrusted_name) { char untrusted_content[MAX_PATH_LENGTH]; unsigned int filelen; @@ -161,7 +161,7 @@ void process_one_file(struct file_header *untrusted_hdr) fprintf(stderr, "%s\n", untrusted_namebuf); } -int do_unpack() +int do_unpack(void) { struct file_header untrusted_hdr; total_bytes = total_files = 0; diff --git a/qrexec-lib/write-stdin.c b/qrexec-lib/write-stdin.c index 8447de8..40a18c1 100644 --- a/qrexec-lib/write-stdin.c +++ b/qrexec-lib/write-stdin.c @@ -69,7 +69,7 @@ Write "len" bytes from "data" to "fd". If not all written, buffer the rest to "buffer", and notify the peer that the client "client_id" pipe is full via MSG_XOFF message. */ -int write_stdin(int fd, int client_id, char *data, int len, +int write_stdin(int fd, int client_id, const char *data, int len, struct buffer *buffer) { int ret;