diff options
author | Samanta Navarro <ferivoz@riseup.net> | 2021-07-24 11:52:34 +0000 |
---|---|---|
committer | Kevin Daudt <kdaudt@alpinelinux.org> | 2021-10-11 18:34:27 +0000 |
commit | f2ab77512354b3a1689eff8ecbdedd310e2e8119 (patch) | |
tree | 2f3f11eb4f76f8dd5fe514dd8938322a4fadaa43 | |
parent | 0db2d3397aef5b0f44a3b85f509b68553c1a5419 (diff) |
abuild: avoid calculations with void pointers
Arithmetic operations with void pointers are an extension by some
compilers and not part of the C standard, which does not specify the
size of void.
CFLAGS with -pedantic reveals this during compile time. I have adjusted
the usage of ?: so CFLAGS can contain -pedantic now.
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | abuild-gzsplit.c | 2 | ||||
-rw-r--r-- | abuild-sudo.c | 2 | ||||
-rw-r--r-- | abuild-tar.c | 10 |
4 files changed, 9 insertions, 7 deletions
@@ -34,7 +34,7 @@ TAR := tar SCDOC := scdoc LINK = $(CC) $(OBJS-$@) -o $@ $(LDFLAGS) $(LDFLAGS-$@) $(LIBS-$@) -CFLAGS ?= -Wall -Werror -g +CFLAGS ?= -Wall -Werror -g -pedantic SED_REPLACE := -e 's:@VERSION@:$(FULL_VERSION):g' \ -e 's:@prefix@:$(prefix):g' \ diff --git a/abuild-gzsplit.c b/abuild-gzsplit.c index 9b171eb..ac55c54 100644 --- a/abuild-gzsplit.c +++ b/abuild-gzsplit.c @@ -75,7 +75,7 @@ int main(void) } if (zs.avail_in == 0 || r == Z_STREAM_END) { - len = (void *)zs.next_in - (void *)ibuf; + len = (char *)zs.next_in - (char *)ibuf; if (write(fd, ibuf, len) != len) { warn("Failed to write to %s", fn); goto err; diff --git a/abuild-sudo.c b/abuild-sudo.c index 2c8dbcf..450e4ad 100644 --- a/abuild-sudo.c +++ b/abuild-sudo.c @@ -104,7 +104,7 @@ int main(int argc, const char *argv[]) if (name == NULL) warnx("Could not find username for uid %d\n", uid); - setenv("USER", name ?: "", 1); + setenv("USER", name ? name : "", 1); cmd = strrchr(argv[0], '/'); if (cmd) diff --git a/abuild-tar.c b/abuild-tar.c index 5964eac..44ebf17 100644 --- a/abuild-tar.c +++ b/abuild-tar.c @@ -122,15 +122,16 @@ static int usage(void) static ssize_t full_read(int fd, void *buf, size_t count) { ssize_t total, n; + char *p = buf; total = 0; do { - n = read(fd, buf, count); + n = read(fd, p, count); if (n < 0 && errno == EINTR) continue; if (n <= 0) break; - buf += n; + p += n; total += n; count -= n; } while (1); @@ -144,15 +145,16 @@ static ssize_t full_read(int fd, void *buf, size_t count) static ssize_t full_write(int fd, const void *buf, size_t count) { ssize_t total, n; + const char *p = buf; total = 0; do { - n = write(fd, buf, count); + n = write(fd, p, count); if (n < 0 && errno == EINTR) continue; if (n <= 0) break; - buf += n; + p += n; total += n; count -= n; } while (1); |