Hello Tero Kristo,

This is a semi-automatic email about new static checker warnings.

The patch ad18cc9d0f91: "crypto: omap-aes - Add support for GCM mode" 
from May 24, 2017, leads to the following Smatch complaint:

    drivers/crypto/omap-aes.c:1262 omap_aes_probe()
    error: we previously assumed 'dd->pdata->aead_algs_info' could be null (see 
line 1237)

drivers/crypto/omap-aes.c
  1236  
  1237          if (dd->pdata->aead_algs_info &&
                    ^^^^^^^^^^^^^^^^^^^^^^^^^
Check for NULL.

  1238              !dd->pdata->aead_algs_info->registered) {
  1239                  for (i = 0; i < dd->pdata->aead_algs_info->size; i++) {
  1240                          aalg = &dd->pdata->aead_algs_info->algs_list[i];
  1241                          algp = &aalg->base;
  1242  
  1243                          pr_debug("reg alg: %s\n", algp->cra_name);
  1244                          INIT_LIST_HEAD(&algp->cra_list);
  1245  
  1246                          err = crypto_register_aead(aalg);
  1247                          if (err)
  1248                                  goto err_aead_algs;
  1249  
  1250                          dd->pdata->aead_algs_info->registered++;
  1251                  }
  1252          }
  1253  
  1254          err = sysfs_create_group(&dev->kobj, &omap_aes_attr_group);
  1255          if (err) {
  1256                  dev_err(dev, "could not create sysfs device attrs\n");
  1257                  goto err_aead_algs;
                        ^^^^^^^^^^^^^^^^^^
Goto.  It was actually this goto added in Feb which introduced the
warning, but my scripts got confused.

  1258          }
  1259  
  1260          return 0;
  1261  err_aead_algs:
  1262          for (i = dd->pdata->aead_algs_info->registered - 1; i >= 0; 
i--) {
                         ^^^^^^^^^^^^^^^^^^^^^^^^^
Unchecked dereference.

  1263                  aalg = &dd->pdata->aead_algs_info->algs_list[i];
  1264                  crypto_unregister_aead(aalg);

regards,
dan carpenter

Reply via email to