1. 07 Nov, 2012 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Fix empty DAC filling in patch_via.c · 5b376195
      Takashi Iwai authored
      In via_auto_fill_adc_nids(), the parser tries to fill dac_nids[] at
      the point of the current line-out (i).  When no valid path is found
      for this output, this results in dac = 0, thus it creates a hole in
      dac_nids[].  This confuses is_empty_dac() and trims the detected DAC
      in later reference.
      
      This patch fixes the bug by appending DAC properly to dac_nids[] in
      via_auto_fill_adc_nids().
      Reported-by: default avatarMassimo Del Fedele <max@veneto.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      5b376195
  2. 05 Nov, 2012 5 commits
  3. 04 Nov, 2012 2 commits
  4. 31 Oct, 2012 1 commit
  5. 30 Oct, 2012 6 commits
  6. 28 Oct, 2012 1 commit
  7. 27 Oct, 2012 2 commits
  8. 26 Oct, 2012 1 commit
  9. 25 Oct, 2012 2 commits
  10. 24 Oct, 2012 1 commit
  11. 22 Oct, 2012 1 commit
  12. 21 Oct, 2012 1 commit
    • Julia Lawall's avatar
      ALSA: sound/isa/opti9xx/miro.c: eliminate possible double free · edb66893
      Julia Lawall authored
      snd_miro_probe is a static function that is only called twice in the file
      that defines it.  At each call site, its argument is freed using
      snd_card_free.  Thus, there is no need for snd_miro_probe to call
      snd_card_free on its argument on any of its error exit paths.
      
      Because snd_card_free both reads the fields of its argument and kfrees its
      argments, the results of the second snd_card_free should be unpredictable.
      
      A simplified version of the semantic match that finds this problem is as
      follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @r@
      identifier f,free,a;
      parameter list[n] ps;
      type T;
      expression e;
      @@
      
      f(ps,T a,...) {
        ... when any
            when != a = e
        if(...) { ... free(a); ... return ...; }
        ... when any
      }
      
      @@
      identifier r.f,r.free;
      expression x,a;
      expression list[r.n] xs;
      @@
      
      * x = f(xs,a,...);
        if (...) { ... free(a); ... return ...; }
      // </smpl>
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      edb66893
  13. 20 Oct, 2012 16 commits