From 892d26c839cee2bade45300ae8377d9ab5388571 Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Sat, 7 Oct 2017 01:25:50 -0700 Subject: Check for negative snprintf return value --- src/applyperms.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') 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); -- cgit v1.2.3