aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'qxpak.c')
-rw-r--r--qxpak.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/qxpak.c b/qxpak.c
index 95fb779..ada9767 100644
--- a/qxpak.c
+++ b/qxpak.c
@@ -341,9 +341,11 @@ xpak_create(int dir_fd, const char *file, int argc, char **argv)
if ((numfiles = scandir(argv[i], &dir, filter_hidden, alphasort)) < 0)
warn("Directory '%s' is empty; skipping", argv[i]);
for (fidx = 0; fidx < numfiles; ++fidx) {
- int ret = snprintf(path, sizeof(path), "%s/%s", argv[i], dir[fidx]->d_name);
- if (ret >= sizeof(path)) {
- warn("skipping path too long: %s/%s", argv[i], dir[fidx]->d_name);
+ int ret = snprintf(path, sizeof(path), "%s/%s",
+ argv[i], dir[fidx]->d_name);
+ if (ret < 0 || (size_t)ret >= sizeof(path)) {
+ warn("skipping path too long: %s/%s",
+ argv[i], dir[fidx]->d_name);
continue;
}
if (stat(path, &st) < 0) {