Re: Huge numbers for incr passed to _sbrk

Joel Sherrill <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <CAF9ehCV_dbWdMR-nXct6g8nQsvYADn1vGGgLCWXQzs6D5dqTBw@mail.gmail.com>
On Fri, Aug 24, 2018 at 2:16 PM, Michael Mamic <[email protected]>
wrote:

> I have fixed the bug now. It turns out that I was using uint32_t types for
> my sbrk implementation when I should have been using char* types. The
> official Newlib documentation uses caddr_t in its sample implementation of
> sbrk, which was confusing to me as that is a type I had never seen before.
> I had to browse through a forum from 1999 to figure out that caddr_t is
> just a typedef to char*.
>
> I think it would help all new users of Newlib if the documentation used
> char* instead of caddr_t, or at least had a sentence saying what caddr_t
> is.
>

The default typedef is in newlib/libc/include/sys/types.h. Some OSes
define it themselves.  caddr_t seems easy to find.  Which seems irrelevant
since sbrk() is prototped in sys/unistd.h as:

./sys/unistd.h:void *  _sbrk (ptrdiff_t __incr);

Looks like there are a fair number of incorrect types in the various sbrk
implementations in libgloss.

Where did you find your sbrk() starting point?

And was there not a mismatched prototype warning when you compiled it?

--joel




>
> On Thu, Aug 23, 2018 at 1:52 PM Bob Dunlop <[email protected]>
> wrote:
>
> >
> > On Thu, Aug 23 at 10:22, Michael Mamic wrote:
> > > A similar incr value of huge proportions is passed to sbrk when Lua is
> > > initialized. I need to find out why this is happening so I can adjust
> for
> > > it.
> >
> > Are the library and syscall implementation being compiled with the
> > same compiler flags and using a common header file for the function
> > prototype ?
> >
> > A mismatch in type or parameter passing conventions between caller and
> > callie could lead to these sorts of errors.  But then I'd have expected
> > just about every function to be affected.
> >
> > The value seen in the syscall 1431656813 converted to hex is 0x5555596D.
> > Now all those 5s make me think of stack or memory boundry guard values.
> >
> > --
> >         Bob Dunlop
> >
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.