Fix potential NULL pointer dereference in dt(4).
authorbluhm <bluhm@openbsd.org>
Wed, 13 Mar 2024 13:13:57 +0000 (13:13 +0000)
committerbluhm <bluhm@openbsd.org>
Wed, 13 Mar 2024 13:13:57 +0000 (13:13 +0000)
When initializing the profiling probes, check if we sucessfully
allocated the probe, before registering it.  This avoids a NULL
pointer dereference when probe allocation has failed.

from Christian Ludwig

sys/dev/dt/dt_prov_profile.c

index 1388770..2697258 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: dt_prov_profile.c,v 1.6 2024/02/09 17:42:18 cheloha Exp $ */
+/*     $OpenBSD: dt_prov_profile.c,v 1.7 2024/03/13 13:13:57 bluhm Exp $ */
 
 /*
  * Copyright (c) 2019 Martin Pieuchot <mpi@openbsd.org>
@@ -53,13 +53,13 @@ int
 dt_prov_profile_init(void)
 {
        dtpp_profile = dt_dev_alloc_probe("hz", "97", &dt_prov_profile);
-       dt_dev_register_probe(dtpp_profile);
        if (dtpp_profile == NULL)
                return 0;
+       dt_dev_register_probe(dtpp_profile);
        dtpp_interval = dt_dev_alloc_probe("hz", "1", &dt_prov_interval);
-       dt_dev_register_probe(dtpp_interval);
        if (dtpp_interval == NULL)
                return 1;
+       dt_dev_register_probe(dtpp_interval);
        return 2;
 }