Author: andrew
Date: Tue Nov 17 10:27:42 2020
New Revision: 367755
URL: https://svnweb.freebsd.org/changeset/base/367755

Log:
  Stop calling gic_v3_detach when we haven't called gic_v3_attach
  
  The former tries to dereference memory allocated by the latter. If counting
  the redistributor fails it may try to dereference memory that was never
  allocated.
  
  Sponsored by: Innovate UK

Modified:
  head/sys/arm64/arm64/gic_v3_acpi.c

Modified: head/sys/arm64/arm64/gic_v3_acpi.c
==============================================================================
--- head/sys/arm64/arm64/gic_v3_acpi.c  Tue Nov 17 10:17:18 2020        
(r367754)
+++ head/sys/arm64/arm64/gic_v3_acpi.c  Tue Nov 17 10:27:42 2020        
(r367755)
@@ -262,7 +262,7 @@ gic_v3_acpi_attach(device_t dev)
 
        err = gic_v3_acpi_count_regions(dev);
        if (err != 0)
-               goto error;
+               goto count_error;
 
        err = gic_v3_attach(dev);
        if (err != 0)
@@ -294,12 +294,13 @@ gic_v3_acpi_attach(device_t dev)
        return (0);
 
 error:
+       /* Failure so free resources */
+       gic_v3_detach(dev);
+count_error:
        if (bootverbose) {
                device_printf(dev,
                    "Failed to attach. Error %d\n", err);
        }
-       /* Failure so free resources */
-       gic_v3_detach(dev);
 
        return (err);
 }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to