diff options
| author | Michael Forney <mforney@mforney.org> | 2017-10-07 01:25:50 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2017-10-07 13:27:36 -0700 |
| commit | 892d26c839cee2bade45300ae8377d9ab5388571 (patch) | |
| tree | 1aa92e2eb41c39fb3cc0596400e09f520cd2f71e /src | |
| parent | a5d613ce958f54efa09000cfe9ce4195f39511e6 (diff) | |
Check for negative snprintf return value
Diffstat (limited to 'src')
| -rw-r--r-- | src/applyperms.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/applyperms.c b/src/applyperms.c index f707af34..491afc83 100644 --- a/src/applyperms.c +++ b/src/applyperms.c @@ -142,9 +142,10 @@ gitspecial(struct special *sp, const char *rev) char *argv[] = {"git", "show", object, 0}; FILE *f; pid_t pid; - int st; + int st, n; - if (snprintf(object, sizeof(object), "%s:%s", rev, PERMS_FILE) >= (int)sizeof(object)) + n = snprintf(object, sizeof(object), "%s:%s", rev, PERMS_FILE); + if (n < 0 || n >= (int)sizeof(object)) die("revision is too large: %s", rev); f = spawn(argv, &pid); readspecial(sp, f); |
