[patch] Avoid bogus pointer->int cast
Ralf Corsepius
ralf.corsepius@rtems.org
Thu Jul 26 08:19:00 GMT 2012
On 07/18/2012 09:54 PM, Eric Blake wrote:
> On 07/17/2012 05:11 PM, Eric Blake wrote:
>> On 07/17/2012 04:31 PM, Ralf Corsepius wrote:
>>>> Rather than "fixing" the bogus pointer check, why not just nuke that
>>>> code altogether?
>>>
>>> My goal was to make the existing code compilable by removing invalid
>>> code, not rewrite it.
>>
>> Ergo, remove ALL of that bogus code, not just the one line bogus cast.
>
> More concretely, any objections to this patch instead?
>
> 2012-07-18 Eric Blake <eblake@redhat.com>
>
> * libc/posix/readdir.c (readdir): Drop bogus attempt to catch
> bogus pointers.
>
> diff --git i/newlib/libc/posix/readdir.c w/newlib/libc/posix/readdir.c
> index da07d5c..d3187e6 100644
> --- i/newlib/libc/posix/readdir.c
> +++ w/newlib/libc/posix/readdir.c
> @@ -75,12 +75,6 @@ _DEFUN(readdir, (dirp),
> continue;
> }
> dp = (struct dirent *)(dirp->dd_buf + dirp->dd_loc);
> - if ((int)dp & 03) { /* bogus pointer check */
> -#ifdef HAVE_DD_LOCK
> - __lock_release_recursive(dirp->dd_lock);
> -#endif
> - return NULL;
> - }
> if (dp->d_reclen <= 0 ||
> dp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc) {
> #ifdef HAVE_DD_LOCK
>
OK with me.
Ralf
More information about the Newlib
mailing list