From fa5095133ab4187c7846c9c1115dfab43d6b36de Mon Sep 17 00:00:00 2001 From: Eric Date: Tue, 27 May 2025 18:37:48 +0200 Subject: [PATCH] remove buffer size dependency from input functions This should've been part of 848c37, when buffers were unwired from input functions. Now buffer size is also no longer supplied in function calls but assumed. It is up to the caller to provide appropriately sized buffers. --- input.c | 14 ++++++++------ input.h | 4 ++-- main.c | 12 ++++++------ 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/input.c b/input.c index cfe80b1..517522b 100644 --- a/input.c +++ b/input.c @@ -1,29 +1,31 @@ #include "input.h" -#define PADDING '=' +#define PADDING '=' +#define OCTETBUF 3 +#define SXTETBUF 4 int -getocts(FILE *fp, unsigned char *o, int olen) +getocts(FILE *fp, unsigned char *o) { int c, n; n = 0; - while (n < olen-1 && (c = fgetc(fp)) != EOF) + while (n < OCTETBUF && (c = fgetc(fp)) != EOF) o[n++] = c; return n; } int -getsxts(FILE *fp, unsigned char *s, int slen) +getsxts(FILE *fp, unsigned char *s) { int c, n, pad; n = pad = 0; - while (n < slen-1 && (c = fgetc(fp)) != EOF && c != PADDING) + while (n < SXTETBUF && (c = fgetc(fp)) != EOF && c != PADDING) if (c != '\n') s[n++] = c; - while (n+pad < slen-1) + while (n+pad < SXTETBUF) s[n+pad++] = PADDING; return n; diff --git a/input.h b/input.h index d859cbd..2238695 100644 --- a/input.h +++ b/input.h @@ -4,9 +4,9 @@ #include int -getocts(FILE *fp, unsigned char *o, int olen); +getocts(FILE *fp, unsigned char *o); int -getsxts(FILE *fp, unsigned char *s, int slen); +getsxts(FILE *fp, unsigned char *s); #endif diff --git a/main.c b/main.c index 0cf51bc..c2017bf 100644 --- a/main.c +++ b/main.c @@ -4,11 +4,11 @@ #include "output.h" #include "encode.h" -#define OBUFSIZE 4 -#define SBUFSIZE 5 +#define OCTETBUF 4 +#define SXTETBUF 5 -unsigned char obuf[OBUFSIZE]; -unsigned char sbuf[SBUFSIZE]; +unsigned char obuf[OCTETBUF]; +unsigned char sbuf[SXTETBUF]; int main(int argc, char *argv[]) @@ -51,12 +51,12 @@ main(int argc, char *argv[]) exit(EXIT_FAILURE); } if (dec) { - while ((n = getsxts((argc >= 1) ? in : stdin, sbuf, SBUFSIZE))) { + while ((n = getsxts((argc >= 1) ? in : stdin, sbuf))) { n = decode(sbuf, n, obuf, url); fwrite(obuf, sizeof(*obuf), n, (argc == 2) ? out : stdout); } } else { - while ((n = getocts((argc >= 1) ? in : stdin, obuf, OBUFSIZE))) { + while ((n = getocts((argc >= 1) ? in : stdin, obuf))) { if (wrp) { n = encode(obuf, n, sbuf, url); l = printw((argc == 2) ? out : stdout, sbuf, n);