file: use size_t for position and pointer
authorHauke Mehrtens <hauke@hauke-m.de>
Sun, 4 Oct 2020 15:14:48 +0000 (17:14 +0200)
committerPetr Štetiar <ynezz@true.cz>
Tue, 6 Oct 2020 06:31:44 +0000 (08:31 +0200)
The bufsz variable is used to store the size of the buf memory region
and pos is used to index a position in this memory. Use size_t for these
variables in the internal handling instaed of int to not break with big
files.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
file.c
libuci.c
uci_internal.h

diff --git a/file.c b/file.c
index ce1acb2024bb1b1b7d7ea560879d7096a98f2304..c9b23d4bbd2f98d2d08838e02a0ae7cf7ff2a2f8 100644 (file)
--- a/file.c
+++ b/file.c
 /*
  * Fetch a new line from the input stream and resize buffer if necessary
  */
-__private void uci_getln(struct uci_context *ctx, int offset)
+__private void uci_getln(struct uci_context *ctx, size_t offset)
 {
        struct uci_parse_context *pctx = ctx->pctx;
        char *p;
-       int ofs;
+       size_t ofs;
 
        if (pctx->buf == NULL) {
                pctx->buf = uci_malloc(ctx, LINEBUF);
@@ -112,7 +112,7 @@ static void skip_whitespace(struct uci_context *ctx)
                pctx->pos += 1;
 }
 
-static inline void addc(struct uci_context *ctx, int *pos_dest, int *pos_src)
+static inline void addc(struct uci_context *ctx, size_t *pos_dest, size_t *pos_src)
 {
        struct uci_parse_context *pctx = ctx->pctx;
 
@@ -124,7 +124,7 @@ static inline void addc(struct uci_context *ctx, int *pos_dest, int *pos_src)
 /*
  * parse a double quoted string argument from the command line
  */
-static void parse_double_quote(struct uci_context *ctx, int *target)
+static void parse_double_quote(struct uci_context *ctx, size_t *target)
 {
        struct uci_parse_context *pctx = ctx->pctx;
        char c;
@@ -159,7 +159,7 @@ static void parse_double_quote(struct uci_context *ctx, int *target)
 /*
  * parse a single quoted string argument from the command line
  */
-static void parse_single_quote(struct uci_context *ctx, int *target)
+static void parse_single_quote(struct uci_context *ctx, size_t *target)
 {
        struct uci_parse_context *pctx = ctx->pctx;
        char c;
@@ -188,7 +188,7 @@ static void parse_single_quote(struct uci_context *ctx, int *target)
 /*
  * parse a string from the command line and detect the quoting style
  */
-static void parse_str(struct uci_context *ctx, int *target)
+static void parse_str(struct uci_context *ctx, size_t *target)
 {
        struct uci_parse_context *pctx = ctx->pctx;
        bool next = true;
@@ -237,7 +237,7 @@ done:
 static int next_arg(struct uci_context *ctx, bool required, bool name, bool package)
 {
        struct uci_parse_context *pctx = ctx->pctx;
-       int val, ptr;
+       size_t val, ptr;
 
        skip_whitespace(ctx);
        val = ptr = pctx_pos(pctx);
index 140edf2adbb0817ad89fdbb2d78984290d3017ca..786d03511b063ac80ec8c887f86e55dfd3d8d819 100644 (file)
--- a/libuci.c
+++ b/libuci.c
@@ -148,7 +148,7 @@ uci_get_errorstr(struct uci_context *ctx, char **dest, const char *prefix)
                err = UCI_ERR_UNKNOWN;
 
        if (ctx && ctx->pctx && (err == UCI_ERR_PARSE)) {
-               snprintf(error_info, sizeof(error_info) - 1, " (%s) at line %d, byte %d",
+               snprintf(error_info, sizeof(error_info) - 1, " (%s) at line %d, byte %zu",
                         (ctx->pctx->reason ? ctx->pctx->reason : "unknown"),
                         ctx->pctx->line, ctx->pctx->byte);
        }
index f00b394972fad870c34e0e445b239b2c2e228be1..3a94dbbcc424fcd20813dc4cfa2279617b6b29e8 100644 (file)
@@ -23,7 +23,7 @@ struct uci_parse_context
        /* error context */
        const char *reason;
        int line;
-       int byte;
+       size_t byte;
 
        /* private: */
        struct uci_package *package;
@@ -32,8 +32,8 @@ struct uci_parse_context
        FILE *file;
        const char *name;
        char *buf;
-       int bufsz;
-       int pos;
+       size_t bufsz;
+       size_t pos;
 };
 #define pctx_pos(pctx)         ((pctx)->pos)
 #define pctx_str(pctx, i)      (&(pctx)->buf[(i)])
@@ -54,7 +54,7 @@ __private struct uci_package *uci_alloc_package(struct uci_context *ctx, const c
 
 __private FILE *uci_open_stream(struct uci_context *ctx, const char *filename, const char *origfilename, int pos, bool write, bool create);
 __private void uci_close_stream(FILE *stream);
-__private void uci_getln(struct uci_context *ctx, int offset);
+__private void uci_getln(struct uci_context *ctx, size_t offset);
 
 __private void uci_parse_error(struct uci_context *ctx, char *reason);
 __private void uci_alloc_parse_context(struct uci_context *ctx);