Showing error 1803

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


Source:

  587  return 0;
  588}
  589
  590
  591/*------------------------------------------------------------------*/
  592/* api_parse function, check the format of api messages             */
  593/*------------------------------------------------------------------*/
  594
  595word api_parse(byte   * msg, word length, byte * format, API_PARSE * parms)
  596{
  597  word i;
  598  word p;
  599
  600  for(i=0,p=0; format[i]; i++) {
  601    if(parms)
  602    {
  603      parms[i].info = &msg[p];
  604    }
  605    switch(format[i]) {
  606    case 'b':
  607      p +=1;
  608      break;
  609    case 'w':
  610      p +=2;
  611      break;
  612    case 'd':
  613      p +=4;
  614      break;
  615    case 's':
  616      if(msg[p]==0xff) {
  617        parms[i].info +=2;
  618        parms[i].length = msg[p+1] + (msg[p+2]<<8);
  619        p +=(parms[i].length +3);
  620      }
  621      else {
  622        parms[i].length = msg[p];
  623        p +=(parms[i].length +1);
  624      }
  625      break;
  626    }
  627
Show full sources