[systemd-devel] [PATCH] fix compiler warnings

Markus Mayer lotharlutz at gmx.de
Fri Nov 1 02:40:50 PDT 2013


On 10/31/2013 07:26 PM, Ronny Chevalier wrote:
> multiple warnings like
>
> src/socket-proxy/socket-proxyd.c: In function ‘transfer_data_cb’:
> src/socket-proxy/socket-proxyd.c:237:25: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘size_t’ [-Wformat=]
>                           log_debug("Buffer now has %ld bytes full.", c->buffer_filled_len);
> ---
>   src/socket-proxy/socket-proxyd.c | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c
> index 054a27a..34b1c15 100644
> --- a/src/socket-proxy/socket-proxyd.c
> +++ b/src/socket-proxy/socket-proxyd.c
> @@ -129,7 +129,7 @@ static int send_buffer(struct connection *sender) {
>            * it does. */
>           while (sender->buffer_filled_len > sender->buffer_sent_len) {
>                   len = send(receiver->fd, sender->buffer + sender->buffer_sent_len, sender->buffer_filled_len - sender->buffer_sent_len, 0);
> -                log_debug("send(%d, ...)=%ld", receiver->fd, len);
> +                log_debug("send(%d, ...)=%zd", receiver->fd, len);
>                   if (len < 0) {
>                           if (errno != EWOULDBLOCK && errno != EAGAIN) {
>                                   log_error("Error %d in send to fd=%d: %m", errno, receiver->fd);
> @@ -147,7 +147,7 @@ static int send_buffer(struct connection *sender) {
>                   sender->buffer_sent_len += len;
>           }
>
> -        log_debug("send(%d, ...) completed with %lu bytes still buffered.", receiver->fd, sender->buffer_filled_len - sender->buffer_sent_len);
> +        log_debug("send(%d, ...) completed with %zd bytes still buffered.", receiver->fd, sender->buffer_filled_len - sender->buffer_sent_len);
>
>           /* Detect a would-block state or partial send. */
>           if (sender->buffer_filled_len > sender->buffer_sent_len) {
> @@ -206,13 +206,13 @@ static int transfer_data_cb(sd_event_source *s, int fd, uint32_t revents, void *
>           log_debug("Got event revents=%d from fd=%d (conn %p).", revents, fd, c);
>
>           if (revents & EPOLLIN) {
> -                log_debug("About to recv up to %lu bytes from fd=%d (%lu/BUFFER_SIZE).", BUFFER_SIZE - c->buffer_filled_len, fd, c->buffer_filled_len);
> +                log_debug("About to recv up to %zd bytes from fd=%d (%zd/BUFFER_SIZE).", BUFFER_SIZE - c->buffer_filled_len, fd, c->buffer_filled_len);
>
>                   /* Receive until the buffer's full, there's no more data,
>                    * or the client/server disconnects. */
>                   while (c->buffer_filled_len < BUFFER_SIZE) {
>                           len = recv(fd, c->buffer + c->buffer_filled_len, BUFFER_SIZE - c->buffer_filled_len, 0);
> -                        log_debug("recv(%d, ...)=%ld", fd, len);
> +                        log_debug("recv(%d, ...)=%zd", fd, len);
>                           if (len < 0) {
>                                   if (errno != EWOULDBLOCK && errno != EAGAIN) {
>                                           log_error("Error %d in recv from fd=%d: %m", errno, fd);
> @@ -232,9 +232,9 @@ static int transfer_data_cb(sd_event_source *s, int fd, uint32_t revents, void *
>                           }
>
>                           assert(len > 0);
> -                        log_debug("Recording that the buffer got %ld more bytes full.", len);
> +                        log_debug("Recording that the buffer got %zd more bytes full.", len);
>                           c->buffer_filled_len += len;
> -                        log_debug("Buffer now has %ld bytes full.", c->buffer_filled_len);
> +                        log_debug("Buffer now has %zd bytes full.", c->buffer_filled_len);
>                   }
>
>                   /* Try sending the data immediately. */
>

According to the 'man 3 printf' %zd refers to ssize_t to print out 
size_t you should use %zu.


Regards

Markus


More information about the systemd-devel mailing list