Showing error 1629

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: drivers/isdn/mISDN/fsm.c
Line in file: 47
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-10 07:54:05 UTC


Source:

 17 * GNU General Public License for more details.
 18 *
 19 */
 20
 21#include <linux/kernel.h>
 22#include <linux/slab.h>
 23#include <linux/module.h>
 24#include <linux/string.h>
 25#include "fsm.h"
 26
 27#define FSM_TIMER_DEBUG 0
 28
 29void
 30mISDN_FsmNew(struct Fsm *fsm,
 31       struct FsmNode *fnlist, int fncount)
 32{
 33        int i;
 34
 35        fsm->jumpmatrix = kzalloc(sizeof(FSMFNPTR) * fsm->state_count *
 36                fsm->event_count, GFP_KERNEL);
 37
 38        for (i = 0; i < fncount; i++)
 39                if ((fnlist[i].state >= fsm->state_count) ||
 40                    (fnlist[i].event >= fsm->event_count)) {
 41                        printk(KERN_ERR
 42                            "mISDN_FsmNew Error: %d st(%ld/%ld) ev(%ld/%ld)\n",
 43                            i, (long)fnlist[i].state, (long)fsm->state_count,
 44                            (long)fnlist[i].event, (long)fsm->event_count);
 45                } else
 46                        fsm->jumpmatrix[fsm->state_count * fnlist[i].event +
 47                            fnlist[i].state] = (FSMFNPTR) fnlist[i].routine;
 48}
 49EXPORT_SYMBOL(mISDN_FsmNew);
 50
 51void
 52mISDN_FsmFree(struct Fsm *fsm)
 53{
 54        kfree((void *) fsm->jumpmatrix);
 55}
 56EXPORT_SYMBOL(mISDN_FsmFree);
 57
Show full sources