From: Takashi Iwai Date: Tue, 1 Feb 2005 18:18:45 +0000 (+0000) Subject: stack protection (CAN-2005-0087) X-Git-Tag: v1.0.9rc1~37 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=e02c51a19900d46db8e06ab73f9fc19ae2edd242;p=alsa-lib.git stack protection (CAN-2005-0087) From Thierry Vignaud : from rh: stack protection control (see https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=144518) --- diff --git a/src/mixer/mixer.c b/src/mixer/mixer.c index a65a6fb4..e33e3364 100644 --- a/src/mixer/mixer.c +++ b/src/mixer/mixer.c @@ -520,17 +520,14 @@ static int snd_mixer_compare_default(const snd_mixer_elem_t *c1, return c1->class->compare(c1, c2); } +typedef int (*qsort_func)(const void *, const void *); static int snd_mixer_sort(snd_mixer_t *mixer) { unsigned int k; - int compar(const void *a, const void *b) { - return mixer->compare(*(const snd_mixer_elem_t * const *) a, - *(const snd_mixer_elem_t * const *) b); - } assert(mixer); assert(mixer->compare); INIT_LIST_HEAD(&mixer->elems); - qsort(mixer->pelems, mixer->count, sizeof(snd_mixer_elem_t*), compar); + qsort(mixer->pelems, mixer->count, sizeof(snd_mixer_elem_t*), (qsort_func)mixer->compare); for (k = 0; k < mixer->count; k++) list_add_tail(&mixer->pelems[k]->list, &mixer->elems); return 0;