Messages in this thread | | | Date | Wed, 13 Feb 2013 10:32:14 +0300 | From | Dan Carpenter <> | Subject | Re: [PATCH] staging/comedi: Fix undefined array subscript |
| |
On Wed, Feb 13, 2013 at 04:30:54AM +0100, Peter Huewe wrote: > In vmk80xx_do_insn_bits the local variable reg, which is used as an > index to the tx_buf array, can be used uninitialized if > - data[0] == 0 > and > - devpriv->model != VMK8061_MODEL > -> we get into the else branch without having reg initialized.
It's weird that GCC doesn't warn about this...
This patch works, or at least it doesn't break anything that wasn't already broken, but it doesn't feel like the right thing. Probably we could move the reg setting outside the if statement.
if (devpriv->model == VMK8055_MODEL) { reg = VMK8055_DO_REG; cmd = VMK8055_CMD_WRT_AD; } else { /* VMK8061_MODEL */ reg = VMK8061_DO_REG; cmd = VMK8061_CMD_DO; }
if (data[0]) { tx_buf[reg] &= ~data[0];
Or maybe data[0] == 0 needs to be handled differently.
Ian would know for sure.
regards, dan carpenter
| |