While omi->omi_som seems variable in size, omi is only ever allocated
with one size and softraid.c uses the same size for free(9) as well.

Tested with cryto softraid and keydisk.

Feedback? OK?


Index: dev/softraid_crypto.c
===================================================================
RCS file: /cvs/src/sys/dev/softraid_crypto.c,v
retrieving revision 1.138
diff -u -p -r1.138 softraid_crypto.c
--- dev/softraid_crypto.c       4 Jul 2019 18:09:17 -0000       1.138
+++ dev/softraid_crypto.c       12 Jul 2020 18:00:29 -0000
@@ -882,7 +882,7 @@ done:
        for (omi = SLIST_FIRST(&som); omi != NULL; omi = omi_next) {
                omi_next = SLIST_NEXT(omi, omi_link);
                free(omi->omi_som, M_DEVBUF, 0);
-               free(omi, M_DEVBUF, 0);
+               free(omi, M_DEVBUF, sizeof(*omi));
        }
 
        free(sm, M_DEVBUF, SR_META_SIZE * DEV_BSIZE);

Reply via email to