]> git.alsa-project.org Git - alsa-lib.git/commitdiff
stack protection (CAN-2005-0087)
authorTakashi Iwai <tiwai@suse.de>
Tue, 1 Feb 2005 18:18:45 +0000 (18:18 +0000)
committerTakashi Iwai <tiwai@suse.de>
Tue, 1 Feb 2005 18:18:45 +0000 (18:18 +0000)
From Thierry Vignaud <tvignaud@mandrakesoft.com>:

from rh: stack protection control (see
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=144518)

src/mixer/mixer.c

index a65a6fb45dd30b448e7572eae0c9ea9d02181588..e33e33644dddfdd1c1095614238788ebb44baf89 100644 (file)
@@ -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;