On Sun, Jul 12, 2020 at 08:51:08PM +0200, Klemens Nanni wrote:
> 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);
>
I like to have "sizeof(*omi)" in corresponding malloc(9) too.
---- cut begin ----
827 omi = malloc(sizeof(struct sr_meta_opt_item), M_DEVBUF,
828 M_WAITOK | M_ZERO);
---- cut end ----