pedantic snprintf() improvement - stagit-gopher - A git gopher frontend. (mirror)
 (HTM) git clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit f8a73285fa1ba57d5815a9c365db13772896ad19
 (DIR) parent 77bfd42fb3c139ada3a679a62c56f6eebd38a0c2
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Sat,  9 Mar 2019 12:41:38 +0100
       
       pedantic snprintf() improvement
       
       POSIX says:
       "If an output error was encountered, these functions shall return a negative
       value and set errno to indicate the error."
       
       Diffstat:
         M stagit-gopher-index.c               |       2 +-
         M stagit-gopher.c                     |       6 +++---
       
       2 files changed, 4 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/stagit-gopher-index.c b/stagit-gopher-index.c
       @@ -117,7 +117,7 @@ joinpath(char *buf, size_t bufsiz, const char *path, const char *path2)
        
                r = snprintf(buf, bufsiz, "%s%s%s",
                        path, path[0] && path[strlen(path) - 1] != '/' ? "/" : "", path2);
       -        if (r == -1 || (size_t)r >= bufsiz)
       +        if (r < 0 || (size_t)r >= bufsiz)
                        errx(1, "path truncated: '%s%s%s'",
                                path, path[0] && path[strlen(path) - 1] != '/' ? "/" : "", path2);
        }
 (DIR) diff --git a/stagit-gopher.c b/stagit-gopher.c
       @@ -124,7 +124,7 @@ joinpath(char *buf, size_t bufsiz, const char *path, const char *path2)
        
                r = snprintf(buf, bufsiz, "%s%s%s",
                        path, path[0] && path[strlen(path) - 1] != '/' ? "/" : "", path2);
       -        if (r == -1 || (size_t)r >= bufsiz)
       +        if (r < 0 || (size_t)r >= bufsiz)
                        errx(1, "path truncated: '%s%s%s'",
                                path, path[0] && path[strlen(path) - 1] != '/' ? "/" : "", path2);
        }
       @@ -710,7 +710,7 @@ writelog(FILE *fp, const git_oid *oid)
        
                        git_oid_tostr(oidstr, sizeof(oidstr), &id);
                        r = snprintf(path, sizeof(path), "commit/%s.gph", oidstr);
       -                if (r == -1 || (size_t)r >= sizeof(path))
       +                if (r < 0 || (size_t)r >= sizeof(path))
                                errx(1, "path truncated: 'commit/%s.gph'", oidstr);
                        r = access(path, F_OK);
        
       @@ -935,7 +935,7 @@ writefilestree(FILE *fp, git_tree *tree, const char *path)
        
                        r = snprintf(filepath, sizeof(filepath), "file/%s.gph",
                                 entrypath);
       -                if (r == -1 || (size_t)r >= sizeof(filepath))
       +                if (r < 0 || (size_t)r >= sizeof(filepath))
                                errx(1, "path truncated: 'file/%s.gph'", entrypath);
        
                        if (!git_tree_entry_to_object(&obj, repo, entry)) {