Hello,

On hppa and landisk, bootstrap() is called from md_installboot().
md_installboot() is the last action before returning from main(),
but bootstrap() can explicitly free the buffer it calloc'd (boot).
I don't have access to hppa or landisk. Is someone able to check
that this doesn't break anything?

- Michael


Index: bootstrap.c
===================================================================
RCS file: /cvs/src/usr.sbin/installboot/bootstrap.c,v
retrieving revision 1.10
diff -u -p -u -r1.10 bootstrap.c
--- bootstrap.c 1 Sep 2018 16:55:29 -0000       1.10
+++ bootstrap.c 7 Nov 2018 15:15:31 -0000
@@ -124,7 +124,9 @@ bootstrap(int devfd, char *dev, char *bo
                fprintf(stderr, "%s bootstrap to disk\n",
                    (nowrite ? "would write" : "writing"));
        if (nowrite)
-               return;
+               goto done;
        if (pwrite(devfd, boot, bootsize, 0) != (ssize_t)bootsize)
                err(1, "pwrite");
+done:
+       free(boot);
 }

Reply via email to