Showing error 1860

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: drivers/uwb/wlp/sysfs.c
Line in file: 501
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-11 08:47:26 UTC


Source:

471        mutex_lock(&wlp->mutex);
472        if (wlp->dev_info == NULL) {
473                result = __wlp_alloc_device_info(wlp);
474                if (result < 0)
475                        goto out;
476        }
477        result = sscanf(buf, "%hhx:%hhx:%hhx",
478                        &OUI[0], &OUI[1], &OUI[2]);
479        if (result != 3) {
480                result = -EINVAL;
481                goto out;
482        } else
483                memcpy(wlp->dev_info->prim_dev_type.OUI, OUI, sizeof(OUI));
484out:
485        mutex_unlock(&wlp->mutex);
486        return result < 0 ? result : size;
487}
488EXPORT_SYMBOL_GPL(wlp_dev_prim_OUI_store);
489
490
491ssize_t wlp_dev_prim_OUI_sub_show(struct wlp *wlp, char *buf)
492{
493        ssize_t result = 0;
494        mutex_lock(&wlp->mutex);
495        if (wlp->dev_info == NULL) {
496                result = __wlp_setup_device_info(wlp);
497                if (result < 0)
498                        goto out;
499        }
500        result = scnprintf(buf, PAGE_SIZE, "%u\n",
501                           wlp->dev_info->prim_dev_type.OUIsubdiv);
502out:
503        mutex_unlock(&wlp->mutex);
504        return result;
505}
506EXPORT_SYMBOL_GPL(wlp_dev_prim_OUI_sub_show);
507
508ssize_t wlp_dev_prim_OUI_sub_store(struct wlp *wlp, const char *buf,
509                                   size_t size)
510{
511        ssize_t result;
Show full sources