NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/52195 (segfault in audio_fill_silence())



On Tue, Apr 25, 2017 at 10:20:01PM +0000, Nathanial Sloss wrote:
> The following reply was made to PR kern/52195; it has been noted by GNATS.
> 
> From: Nathanial Sloss <nat%netbsd.org@localhost>
> To: gnats-bugs%netbsd.org@localhost
> Cc: 
> Subject: Re: kern/52195 (segfault in audio_fill_silence())
> Date: Wed, 26 Apr 2017 08:15:42 +1000
> 
>  Hi,
>  
>  What is the offending portion of code in the previos function of the backtrace.
>  
>  The audio_mix.part.27+0x61c?

gdb tells me:
(gdb) l *(audio_mix+0x61c)
0x8020a6d4 is in audio_mix (/local/armandeche1/can/src/sys/dev/audio_if.h:107).
102     static __inline uint8_t *
103     audio_stream_add_inp(audio_stream_t *s, uint8_t *v, int diff)
104     {
105             s->used += diff;
106             v += diff;
107             if (v >= s->end)
108                     v -= s->end - s->start;
109             return v;
110     }

but this doesn't make much sense. nm shows that audio_mix.part.27 is at
0x8020a0b8, but 0x8020a0b8+0x61c points to the same place in code.

Maybe this is better:
(gdb) l *(audio_mix+0x618)
0x8020a6d0 is in audio_mix (/local/armandeche1/can/src/sys/dev/audio.c:3531).
3526            } else {
3527                    vc->sc_sil_start = inp;
3528                    vc->sc_sil_count = cc;
3529                    DPRINTFN(5, ("audio_pint_silence: start fill %p %d\n",
3530                                 inp, cc));
3531                    audio_fill_silence(&cb->s.param, inp, cc);
3532            }
3533    }


-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index