fix esoteric error message in case PackageName parses stuff to a bogus
authorespie <espie@openbsd.org>
Thu, 20 Jul 2023 17:56:37 +0000 (17:56 +0000)
committerespie <espie@openbsd.org>
Thu, 20 Jul 2023 17:56:37 +0000 (17:56 +0000)
fullpkgname, as seen by Matthias Schmidt

usr.sbin/pkg_add/OpenBSD/PkgCreate.pm

index 8c2ddca..4ce2a45 100644 (file)
@@ -1,6 +1,6 @@
 #! /usr/bin/perl
 # ex:ts=8 sw=4:
-# $OpenBSD: PkgCreate.pm,v 1.194 2023/07/04 14:03:16 espie Exp $
+# $OpenBSD: PkgCreate.pm,v 1.195 2023/07/20 17:56:37 espie Exp $
 #
 # Copyright (c) 2003-2014 Marc Espie <espie@openbsd.org>
 #
@@ -1571,6 +1571,14 @@ sub validate_pkgname($self, $state, $pkgname)
        }
        my $okay_flavors = {map {($_, 1)} split(/\s+/, $flavor_list) };
        my $v = OpenBSD::PackageName->from_string($pkgname);
+
+       # first check we got a non buggy pkgname, since otherwise
+       # the parts we test won't even exist !
+       if ($v->has_issues) {
+               $state->errsay("Error FULLPKGNAME #1 #2", $pkgname,
+                   $v->has_issues);
+               $state->fatal("Can't continue");
+       } 
        my $errors = 0;
        if ($v->{version}->p != $revision) {
                $state->errsay("REVISION mismatch (REVISION=#1)", $revision);