From d1c590eca25f8642bc793b42247737d8196f4587 Mon Sep 17 00:00:00 2001 From: nectar Date: Wed, 17 Dec 2003 13:36:05 +0000 Subject: Correct truncation detection after use of snprintf: The case where exactly one character was truncated was not detected. --- usr.sbin/pkg_install/add/extract.c | 6 +++--- usr.sbin/pkg_install/create/pl.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'usr.sbin/pkg_install') diff --git a/usr.sbin/pkg_install/add/extract.c b/usr.sbin/pkg_install/add/extract.c index f35cce2..e76cede 100644 --- a/usr.sbin/pkg_install/add/extract.c +++ b/usr.sbin/pkg_install/add/extract.c @@ -159,7 +159,7 @@ extract_plist(const char *home, Package *pkg) PUSHOUT(Directory); } add_count = snprintf(&perm_args[perm_count], maxargs - perm_count, "'%s' ", p->name); - if (add_count < 0 || add_count > maxargs - perm_count) { + if (add_count < 0 || add_count >= maxargs - perm_count) { cleanup(0); errx(2, "%s: oops, miscounted strings!", __func__); } @@ -179,7 +179,7 @@ extract_plist(const char *home, Package *pkg) PUSHOUT(Directory); } add_count = snprintf(&where_args[where_count], maxargs - where_count, " '%s'", p->name); - if (add_count < 0 || add_count > maxargs - where_count) { + if (add_count < 0 || add_count >= maxargs - where_count) { cleanup(0); errx(2, "%s: oops, miscounted strings!", __func__); } @@ -187,7 +187,7 @@ extract_plist(const char *home, Package *pkg) add_count = snprintf(&perm_args[perm_count], maxargs - perm_count, "'%s' ", p->name); - if (add_count < 0 || add_count > maxargs - perm_count) { + if (add_count < 0 || add_count >= maxargs - perm_count) { cleanup(0); errx(2, "%s: oops, miscounted strings!", __func__); } diff --git a/usr.sbin/pkg_install/create/pl.c b/usr.sbin/pkg_install/create/pl.c index d8b3d7e..55c721c 100644 --- a/usr.sbin/pkg_install/create/pl.c +++ b/usr.sbin/pkg_install/create/pl.c @@ -204,7 +204,7 @@ copy_plist(const char *home, Package *plist) p->name); last_chdir = home; } - if (add_count < 0 || add_count > maxargs - where_count) { + if (add_count < 0 || add_count >= maxargs - where_count) { cleanup(0); errx(2, "%s: oops, miscounted strings!", __func__); } @@ -242,7 +242,7 @@ copy_plist(const char *home, Package *plist) " -C %s %s", mythere ? mythere : where, p->name); - if (add_count < 0 || add_count > maxargs - where_count) { + if (add_count < 0 || add_count >= maxargs - where_count) { cleanup(0); errx(2, "%s: oops, miscounted strings!", __func__); } -- cgit v1.1