On Tuesday 12 January 2010 18:49:48 Hans Petter Selasky wrote: > Re: FYI: v4l-linuxulator support in FreeBSD-current now > Hi, Some panics have cropped up when using linux-V4L with webcamd. 1st) panic: freeing memory in linux_v4l_cliplist_free() which is not allocated, but there seems to be more which needs to be done. I tried to fix something, but it was apparently not enough. Help appreciated. One question: Do we need to handle the IOCTL's in question at all in the linuxulator? --HPS --- linux_ioctl.c.orig 2010-02-17 20:42:53.000000000 +0100 +++ linux_ioctl.c 2010-02-17 21:03:10.000000000 +0100 _at__at_ -2711,7 +2711,7 _at__at_ /* XXX: If there can be no concurrency: s/M_NOWAIT/M_WAITOK/ */ if ((*ppvc = malloc(sizeof(**ppvc), M_LINUX, M_NOWAIT)) == NULL) return (ENOMEM); /* XXX: linux has no ENOMEM here */ - memcpy(&vclip, *ppvc, sizeof(vclip)); + memcpy(*ppvc, &vclip, sizeof(vclip)); (*ppvc)->next = NULL; return (0); } _at__at_ -2719,13 +2719,15 _at__at_ static int linux_v4l_cliplist_free(struct video_window *vw) { - struct video_clip **ppvc; - struct video_clip **ppvc_next; + struct video_clip *ppvc; + struct video_clip *ppvc_next; - for (ppvc = &(vw->clips); *ppvc != NULL; ppvc = ppvc_next) { - ppvc_next = &((*ppvc)->next); - free(*ppvc, M_LINUX); + for (ppvc = vw->clips; ppvc != NULL; ppvc = ppvc_next) { + ppvc_next = ppvc->next; + free(ppvc, M_LINUX); } + vw->clips = NULL; + return (0); }Received on Thu Feb 18 2010 - 07:15:52 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:00 UTC