All of lore.kernel.org
 help / color / mirror / Atom feed
* [bug report] media: dvb_frontend: cleanup ioctl handling logic
@ 2017-11-30  9:58 Dan Carpenter
  2017-11-30 10:25 ` Menion
  0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2017-11-30  9:58 UTC (permalink / raw)
  To: mchehab; +Cc: linux-media

Hello Mauro Carvalho Chehab,

The patch d73dcf0cdb95: "media: dvb_frontend: cleanup ioctl handling
logic" from Sep 18, 2017, leads to the following static checker
warning:

	drivers/media/dvb-core/dvb_frontend.c:2469 dvb_frontend_handle_ioctl()
	error: uninitialized symbol 'err'.

drivers/media/dvb-core/dvb_frontend.c
  2427          case FE_READ_UNCORRECTED_BLOCKS:
  2428                  if (fe->ops.read_ucblocks) {
  2429                          if (fepriv->thread)
  2430                                  err = fe->ops.read_ucblocks(fe, parg);
  2431                          else
  2432                                  err = -EAGAIN;
  2433                  }

"err" isn't initialized if ->ops.read_ucblocks is NULL.

  2434                  break;
  2435  
  2436          /* DEPRECATED DVBv3 ioctls */
  2437  
  2438          case FE_SET_FRONTEND:
  2439                  err = dvbv3_set_delivery_system(fe);
  2440                  if (err)
  2441                          break;
  2442  
  2443                  err = dtv_property_cache_sync(fe, c, parg);
  2444                  if (err)
  2445                          break;
  2446                  err = dtv_set_frontend(fe);
  2447                  break;
  2448          case FE_GET_EVENT:
  2449                  err = dvb_frontend_get_event (fe, parg, file->f_flags);
  2450                  break;
  2451  
  2452          case FE_GET_FRONTEND: {
  2453                  struct dtv_frontend_properties getp = fe->dtv_property_cache;
  2454  
  2455                  /*
  2456                   * Let's use our own copy of property cache, in order to
  2457                   * avoid mangling with DTV zigzag logic, as drivers might
  2458                   * return crap, if they don't check if the data is available
  2459                   * before updating the properties cache.
  2460                   */
  2461                  err = dtv_get_frontend(fe, &getp, parg);
  2462                  break;
  2463          }
  2464  
  2465          default:
  2466                  return -ENOTSUPP;
  2467          } /* switch */
  2468  
  2469          return err;
                ^^^^^^^^^^
  2470  }

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [bug report] media: dvb_frontend: cleanup ioctl handling logic
  2017-11-30  9:58 [bug report] media: dvb_frontend: cleanup ioctl handling logic Dan Carpenter
@ 2017-11-30 10:25 ` Menion
  0 siblings, 0 replies; 2+ messages in thread
From: Menion @ 2017-11-30 10:25 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: mchehab, linux-media

Hello
Is anyone working on adding compact_ioctl?
So far it is impossible to use linux-media from 32bit userland on 64bit kernels
Bye

2017-11-30 10:58 GMT+01:00 Dan Carpenter <dan.carpenter@oracle.com>:
> Hello Mauro Carvalho Chehab,
>
> The patch d73dcf0cdb95: "media: dvb_frontend: cleanup ioctl handling
> logic" from Sep 18, 2017, leads to the following static checker
> warning:
>
>         drivers/media/dvb-core/dvb_frontend.c:2469 dvb_frontend_handle_ioctl()
>         error: uninitialized symbol 'err'.
>
> drivers/media/dvb-core/dvb_frontend.c
>   2427          case FE_READ_UNCORRECTED_BLOCKS:
>   2428                  if (fe->ops.read_ucblocks) {
>   2429                          if (fepriv->thread)
>   2430                                  err = fe->ops.read_ucblocks(fe, parg);
>   2431                          else
>   2432                                  err = -EAGAIN;
>   2433                  }
>
> "err" isn't initialized if ->ops.read_ucblocks is NULL.
>
>   2434                  break;
>   2435
>   2436          /* DEPRECATED DVBv3 ioctls */
>   2437
>   2438          case FE_SET_FRONTEND:
>   2439                  err = dvbv3_set_delivery_system(fe);
>   2440                  if (err)
>   2441                          break;
>   2442
>   2443                  err = dtv_property_cache_sync(fe, c, parg);
>   2444                  if (err)
>   2445                          break;
>   2446                  err = dtv_set_frontend(fe);
>   2447                  break;
>   2448          case FE_GET_EVENT:
>   2449                  err = dvb_frontend_get_event (fe, parg, file->f_flags);
>   2450                  break;
>   2451
>   2452          case FE_GET_FRONTEND: {
>   2453                  struct dtv_frontend_properties getp = fe->dtv_property_cache;
>   2454
>   2455                  /*
>   2456                   * Let's use our own copy of property cache, in order to
>   2457                   * avoid mangling with DTV zigzag logic, as drivers might
>   2458                   * return crap, if they don't check if the data is available
>   2459                   * before updating the properties cache.
>   2460                   */
>   2461                  err = dtv_get_frontend(fe, &getp, parg);
>   2462                  break;
>   2463          }
>   2464
>   2465          default:
>   2466                  return -ENOTSUPP;
>   2467          } /* switch */
>   2468
>   2469          return err;
>                 ^^^^^^^^^^
>   2470  }
>
> regards,
> dan carpenter

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-11-30 10:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-30  9:58 [bug report] media: dvb_frontend: cleanup ioctl handling logic Dan Carpenter
2017-11-30 10:25 ` Menion

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.