public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Karsten Keil <isdn@linux-pingi.de>
To: Jerry Leo <jerryleo860202@gmail.com>
Cc: linux-kernel@vger.kernel.org, isdn4linux@listserv.isdn4linux.de,
	i4ldeveloper@listserv.isdn4linux.de,
	Armin Schindler <armin@melware.de>
Subject: Re: [PATCH]about eicon: array subscript is above array bounds
Date: Thu, 10 Dec 2009 15:49:52 +0100	[thread overview]
Message-ID: <200912101549.52797.isdn@linux-pingi.de> (raw)
In-Reply-To: <6304b52b0912092004t646569bdm2a6bbc9bb2440aba@mail.gmail.com>

On Donnerstag, 10. Dezember 2009 05:04:35 Jerry Leo wrote:
> Hi, Karsten Keil,
> 
>         When i compile eicon,there have some waning look like this:

This looks wrong, but I do not know this part so well.

Armin ?

> 
>            CC [M]  drivers/isdn/hardware/eicon/message.o
> drivers/isdn/hardware/eicon/message.c: In function ‘add_b23’:
> drivers/isdn/hardware/eicon/message.c:8426: warning: array subscript
> is above array bounds
> drivers/isdn/hardware/eicon/message.c:8427: warning: array subscript
> is above array bounds
> drivers/isdn/hardware/eicon/message.c:8434: warning: array subscript
> is above array bounds
> drivers/isdn/hardware/eicon/message.c:8435: warning: array subscript
> is above array bounds
> drivers/isdn/hardware/eicon/message.c:8436: warning: array subscript
> is above array bounds
> drivers/isdn/hardware/eicon/message.c:8447: warning: array subscript
> is above array bounds
> 
> I think the array is short then be used,because the array's max length
> is 20, then it will use long than this, the code is in
> "drivers/isdn/hardware/eicon/divacapi.h" 1360L, 50994C  :
> 
> 
> #define T30_MAX_STATION_ID_LENGTH       20
> #define T30_MAX_SUBADDRESS_LENGTH       20
> #define T30_MAX_PASSWORD_LENGTH         20
> 
> typedef struct t30_info_s T30_INFO;
> struct t30_info_s {
>   byte          code;
>   byte          rate_div_2400;
>   byte          resolution;
>   byte          data_format;
>   byte          pages_low;
>   byte          pages_high;
>   byte          operating_mode;
>   byte          control_bits_low;
>   byte          control_bits_high;
>   byte          feature_bits_low;
>   byte          feature_bits_high;
>   byte          recording_properties;
>   byte          universal_6;
>   byte          universal_7;
>   byte          station_id_len;
>   byte          head_line_len;
>   byte          station_id[T30_MAX_STATION_ID_LENGTH];
> /* byte          head_line[];      */
> /* byte          sub_sep_length;   */
> /* byte          sub_sep_field[];  */
> /* byte          pwd_length;       */
> /* byte          pwd_field[];      */
> /* byte          nsf_info_length;   */
> /* byte          nsf_info_field[];  */
> };
> 
> "drivers/isdn/hardware/eicon/message.c" 15071L, 487328C
> 
>         if (pos != 0)
>         {
>           if (CAPI_MAX_DATE_TIME_LENGTH + 2 +
> b3_config_parms[3].length > CAPI_MAX_HEAD_LINE_SPACE)
>             pos = 0;
>           else
>           {
>             ((T30_INFO *)&nlc[1])->station_id[20 + pos++] = ' ';
>             ((T30_INFO *)&nlc[1])->station_id[20 + pos++] = ' ';
>             len = (byte)b3_config_parms[2].length;
>             if (len > 20)
>               len = 20;
>             if (CAPI_MAX_DATE_TIME_LENGTH + 2 + len + 2 +
> b3_config_parms[3].length <= CAPI_MAX_HEAD_LINE_SPACE)
>             {
>               for (i = 0; i < len; i++)
>                 ((T30_INFO *)&nlc[1])->station_id[20 + pos++] = ((byte
>   *)b3_config_parms[2].info)[1+i];
>               ((T30_INFO *)&nlc[1])->station_id[20 + pos++] = ' ';
>               ((T30_INFO *)&nlc[1])->station_id[20 + pos++] = ' ';
>             }
>           }
>         }
> 
> 
> 
> can this patch commit?
> 

Wrong fileorder, this is a reverse patch.
But I  think the code should be fixed.

> 
> diff -up linux-2.6/drivers/isdn/hardware/eicon/divacapi.h
> linux-2.6/drivers/isdn/hardware/eicon/divacapi.h.orig
> --- linux-2.6/drivers/isdn/hardware/eicon/divacapi.h	2009-12-10
> 12:02:46.000000000 +0800
> +++ linux-2.6/drivers/isdn/hardware/eicon/divacapi.h.orig	2009-12-10
> 11:04:07.000000000 +0800
> @@ -445,7 +445,7 @@ struct _DIVA_CAPI_ADAPTER {
>  #define CAPI_MAX_HEAD_LINE_SPACE        89
>  #define CAPI_MAX_DATE_TIME_LENGTH       18
> 
> -#define T30_MAX_STATION_ID_LENGTH       30
> +#define T30_MAX_STATION_ID_LENGTH       20
>  #define T30_MAX_SUBADDRESS_LENGTH       20
>  #define T30_MAX_PASSWORD_LENGTH         20
> 

  reply	other threads:[~2009-12-10 14:50 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-10  4:04 [PATCH]about eicon: array subscript is above array bounds Jerry Leo
2009-12-10 14:49 ` Karsten Keil [this message]
2009-12-11  1:31   ` Jerry Leo
  -- strict thread matches above, loose matches on Subject: below --
2009-12-10  5:46 Jerry Leo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200912101549.52797.isdn@linux-pingi.de \
    --to=isdn@linux-pingi.de \
    --cc=armin@melware.de \
    --cc=i4ldeveloper@listserv.isdn4linux.de \
    --cc=isdn4linux@listserv.isdn4linux.de \
    --cc=jerryleo860202@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox