This is the mail archive of the newlib@sources.redhat.com mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: mblen(NULL,x) bug


Jonathan Larmour wrote:
> 
> It seems there's a long lasting bug which I noticed when doing
> mblen(NULL,x) on a target that traps dereferences of NULLs. When s is
> (legally) passed as NULL to _mbtowc_r(), it shouldn't dereference it.
> Trivial fix below, okay to check in?
> 
> Jifl
> 

Yes, please and thanks.

-- Jeff J.

> 2001-06-08  Jonathan Larmour  <jlarmour@redhat.com>
> 
>         * libc/stdlib/mbtowc_r.c (_mbtowc_r): Avoid dereferencing
>         NULL pointer.
> 
> --- mbtowc_r.c  1998/08/21 19:47:39     1.3
> +++ mbtowc_r.c  2001/06/08 19:49:40
> @@ -66,13 +66,14 @@ _DEFUN (_mbtowc_r, (r, pwc, s, n, state)
>    if (r->_current_locale == NULL ||
>        (strlen (r->_current_locale) <= 1))
>      { /* fall-through */ }
>    else if (!strcmp (r->_current_locale, "C-SJIS"))
>      {
> -      int char1 = *t;
> +      int char1;
>        if (s == NULL)
>          return 0;  /* not state-dependent */
> +      char1 = *t;
>        if (_issjis1 (char1))
>          {
>            int char2 = t[1];
>            if (n <= 1)
>              return -1;
> @@ -85,13 +86,14 @@ _DEFUN (_mbtowc_r, (r, pwc, s, n, state)
>              return -1;
>          }
>      }
>    else if (!strcmp (r->_current_locale, "C-EUCJP"))
>      {
> -      int char1 = *t;
> +      int char1;
>        if (s == NULL)
>          return 0;  /* not state-dependent */
> +      char1 = *t;
>        if (_iseucjp (char1))
>          {
>            int char2 = t[1];
>            if (n <= 1)
>              return -1;
> 
> --
> Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
> Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine
> Come to the Red Hat TechWorld open source conference in Brussels!
> Keynotes, techie talks and exhibitions    http://www.redhat-techworld.com/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]