[MPlayer-dev-eng] Probable boolean logic bug

Michael McConville mmcco at mykolab.com
Sat Apr 16 23:16:21 CEST 2016


Hi, everyone.

It seems that there's a nonsensical if condition in the IVTV code. It
always evaluates to true because it tests the same variable against
multiple different constants. The most probable explanation is that ||
was used when && was intended.

I found this with Coccinelle.

Thanks for your time,
Michael


--- libao2/ao_ivtv.c
+++ /tmp/cocci-output-71047-6811f3-ao_ivtv.c
@@ -84,7 +84,7 @@ init (int rate, int channels, int format
   freq = rate;
 
   /* check for supported audio rate */
-  if (rate != 32000 || rate != 41000 || rate != 48000)
+  if (rate != 32000 && rate != 41000 && rate != 48000)
   {
     mp_msg (MSGT_AO, MSGL_ERR, MSGTR_AO_MPEGPES_UnsupSamplerate, rate);
     rate = 48000;


More information about the MPlayer-dev-eng mailing list