Date: Fri, 1 Feb 2002 16:33:53 +0900 (JST) From: SHIMIZU Yoshiaki <shimizuysa@nttdata.co.jp> To: FreeBSD-gnats-submit@freebsd.org Cc: shimizuysa@nttdata.co.jp Subject: bin/34519: pkg_check(8) does not return exit code >0 if verifing in case of PKG_UNSIGNED or PKG_SIGUNKNOWN Message-ID: <200202010733.g117XrI01476@classic.sc.biz.nttdata.co.jp>
next in thread | raw e-mail | index | archive | help
>Number: 34519
>Category: bin
>Synopsis: pkg_check(8) does not return exit code >0 if verifing in case of PKG_UNSIGNED or PKG_SIGUNKNOWN
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Jan 31 23:40:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: SHIMIZU Yoshiaki
>Release: FreeBSD 4.5-STABLE i386
>Organization:
NTT Data CORPORATION
>Environment:
System: FreeBSD classic.sc.biz.nttdata.co.jp 4.5-STABLE FreeBSD 4.5-STABLE #0: Thu Jan 31 16:31:05 JST 2002 joshua@classic.sc.biz.nttdata.co.jp:/usr/obj/usr/src/sys/CLASSIC i386
>Description:
DIAGNOSTICS of pkg_check(8) manpage says :
pkg_sign and pkg_check return with an exit code >0 if anything went wrong
for any file. For pkg_check, this usually indicates that the package is
not signed, or that the signature is forged.
However, when verifying non-signed or non-gziped file (both PKG_UNSIGNED case),
pkg_check(8) returns exit code =0 with warnning message.
I use only `-t x509' option-type, but Maybe using `-t sha-1' option-type
`PKG_UNKNOWN' case is looks same.
It's makes problem, when detecting package integrity mismatch in shell-scripts.
>How-To-Repeat:
# pkg_check -t x509 -k VALID_CRT PKG_UNSIGNED.tar.gz
File UNSIGNED.tar.gz is not a signed gzip file
# echo $?
0
>Fix:
/* $FreeBSD: src/usr.sbin/pkg_install/sign/main.c,v 1.1.2.1 2001/03/05 03:43:53 wes Exp $ */
======
--- src/usr.sbin/pkg_install/sign/main.c.orig Mon Mar 5 12:43:53 2001
+++ src/usr.sbin/pkg_install/sign/main.c Tue Jan 29 20:30:00 2002
@@ -83,7 +83,7 @@
}
result = check_signature(file, userid, envp, filename);
if (fclose(file) == 0) {
- if (result == PKG_BADSIG || result == PKG_SIGERROR)
+ if (result == PKG_BADSIG || result == PKG_UNSIGNED || result == PKG_SIGERROR || result == PKG_UNKNOWN)
return 0;
else
return 1;
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200202010733.g117XrI01476>
