I was going through sbase checking with -Wall -Wextra -pedantic -Werror, and among a bunch of noise errors relating to signed/unsigned comparisons, I found one with actual substance: the result of getline is being converted to size_t before comparing to -1 to check for error.
diff --git a/join.c b/join.c index 1a08927..6828cf4 100644 --- a/join.c +++ b/join.c @@ -261,7 +261,8 @@ static int addtospan(struct span *sp, FILE *fp, int reset) { char *newl = NULL; - size_t len, size = 0; + ssize_t len; + size_t size = 0; if ((len = getline(&newl, &size, fp)) == -1) { if (ferror(fp)) I also couldn't quite figure out if this line of tail.c is correct or not. n = MIN(llabs(estrtonum(numstr, LLONG_MIN + 1, MIN(LLONG_MAX, SIZE_MAX))), SIZE_MAX);