Showing error 1857

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: 439
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-11 08:47:26 UTC


Source:

409{
410        ssize_t result = 0;
411        mutex_lock(&wlp->mutex);
412        if (wlp->dev_info == NULL) {
413                result = __wlp_setup_device_info(wlp);
414                if (result < 0)
415                        goto out;
416        }
417        result = scnprintf(buf, PAGE_SIZE, "%s\n",
418                  wlp_dev_category_str(wlp->dev_info->prim_dev_type.category));
419out:
420        mutex_unlock(&wlp->mutex);
421        return result;
422}
423EXPORT_SYMBOL_GPL(wlp_dev_prim_category_show);
424
425ssize_t wlp_dev_prim_category_store(struct wlp *wlp, const char *buf,
426                                    size_t size)
427{
428        ssize_t result;
429        u16 cat;
430        mutex_lock(&wlp->mutex);
431        if (wlp->dev_info == NULL) {
432                result = __wlp_alloc_device_info(wlp);
433                if (result < 0)
434                        goto out;
435        }
436        result = sscanf(buf, "%hu", &cat);
437        if ((cat >= WLP_DEV_CAT_COMPUTER && cat <= WLP_DEV_CAT_TELEPHONE)
438            || cat == WLP_DEV_CAT_OTHER)
439                wlp->dev_info->prim_dev_type.category = cat;
440        else
441                result = -EINVAL;
442out:
443        mutex_unlock(&wlp->mutex);
444        return result < 0 ? result : size;
445}
446EXPORT_SYMBOL_GPL(wlp_dev_prim_category_store);
447
448ssize_t wlp_dev_prim_OUI_show(struct wlp *wlp, char *buf)
449{
Show full sources