Don't panic when we cannot locate a handle for the Serial IO protocol.
authorpatrick <patrick@openbsd.org>
Thu, 1 Jun 2017 11:32:15 +0000 (11:32 +0000)
committerpatrick <patrick@openbsd.org>
Thu, 1 Jun 2017 11:32:15 +0000 (11:32 +0000)
Fixes reports on tech and in private.

ok yasuoka@ stsp@

sys/arch/amd64/stand/efiboot/conf.c
sys/arch/amd64/stand/efiboot/efiboot.c

index c02719d..3b2059e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: conf.c,v 1.7 2017/05/31 08:40:32 yasuoka Exp $        */
+/*     $OpenBSD: conf.c,v 1.8 2017/06/01 11:32:15 patrick Exp $        */
 
 /*
  * Copyright (c) 1996 Michael Shalayeff
@@ -38,7 +38,7 @@
 #include "efiboot.h"
 #include "efidev.h"
 
-const char version[] = "3.32";
+const char version[] = "3.33";
 
 #ifdef EFI_DEBUG
 int    debug = 0;
index 25e34c1..9b6d5fc 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: efiboot.c,v 1.19 2017/05/31 08:40:32 yasuoka Exp $    */
+/*     $OpenBSD: efiboot.c,v 1.20 2017/06/01 11:32:15 patrick Exp $    */
 
 /*
  * Copyright (c) 2015 YASUOKA Masahiko <yasuoka@yasuoka.net>
@@ -526,8 +526,10 @@ efi_com_probe(struct consdev *cn)
                status = EFI_CALL(BS->LocateHandle, ByProtocol, &serio_guid,
                    0, &sz, handles);
        }
-       if (handles == NULL || EFI_ERROR(status))
-               panic("could not get handles of serial i/o");
+       if (handles == NULL || EFI_ERROR(status)) {
+               free(handles, sz);
+               return;
+       }
 
        for (i = 0; i < sz / sizeof(EFI_HANDLE); i++) {
                /*