diff -r 4a10bc0ee80d -r 4e6e812c1d97 src/server/util/io.c --- a/src/server/util/io.c Thu Jun 20 13:27:07 2013 +0200 +++ b/src/server/util/io.c Thu Jun 20 14:07:46 2013 +0200 @@ -95,7 +95,7 @@ struct iovec io[2]; char chunk_len[16]; io[0].iov_base = chunk_len; - io[0].iov_len = snprintf(chunk_len, 16, "\n%x\r\n", nbytes); + io[0].iov_len = snprintf(chunk_len, 16, "\n%zx\r\n", nbytes); io[1].iov_base = buf; io[1].iov_len = nbytes; ssize_t r = writev(st->fd, io, 2); @@ -114,7 +114,7 @@ for(int i=0;ifd, io, iovcnt + 1); return r - io[0].iov_len; @@ -150,7 +150,8 @@ hdtr.trailers = &trvec; hdtr.trl_cnt = 1; - ret = sendfile(sfd->fd->fd, st->fd, sfd->offset, (off_t*)&sfd->len, &hdtr, 0); + off_t len = sfd->len; + ret = sendfile(sfd->fd->fd, st->fd, sfd->offset, &len, &hdtr, 0); #else ret = sendfile(st->fd, sfd->fd->fd, &fileoffset, sfd->len); #endif