summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamanta Navarro <ferivoz@riseup.net>2021-07-24 11:52:34 +0000
committerKevin Daudt <kdaudt@alpinelinux.org>2021-10-11 18:34:27 +0000
commitf2ab77512354b3a1689eff8ecbdedd310e2e8119 (patch)
tree2f3f11eb4f76f8dd5fe514dd8938322a4fadaa43
parent0db2d3397aef5b0f44a3b85f509b68553c1a5419 (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--Makefile2
-rw-r--r--abuild-gzsplit.c2
-rw-r--r--abuild-sudo.c2
-rw-r--r--abuild-tar.c10
4 files changed, 9 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index a58e0b2..4c0a4b7 100644
--- a/Makefile
+++ b/Makefile
@@ -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);