Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jan 2009 17:31:43 +0530
From:      Channa <channa.kad@gmail.com>
To:        Christoph Mallon <christoph.mallon@gmx.de>
Cc:        freebsd-current@freebsd.org
Subject:   Re: Jemalloc SEGV for 1MB chunk
Message-ID:  <515c64960901280401w1e1d08bfx29adc124bc749c4a@mail.gmail.com>
In-Reply-To: <49804597.6040303@gmx.de>
References:  <515c64960901280339m17fa9309v2e1bc3f55454ab@mail.gmail.com> <49804597.6040303@gmx.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,
Thanks for your reply.
You mean to say i should modify the test as below:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main()
{
int i;
char *buf;
size_t size = 1048576 ;

        buf = malloc(size);
  for (i = 0; i <= 1048575; i++)
    buf[i] = 'a';
buf[size]='\0';
printf("The length of buff is : %d\n",strlen(buf));
free(buf);
return 0;
}

I NULL terminated the string
buf[size] = '\0'  <== The last character is NULL

But still i get a SEGV at strlen.

Could you please tell me if my changes above are correct?

Regards,
Channa


On 28/01/2009, Christoph Mallon <christoph.mallon@gmx.de> wrote:
> Channa schrieb:
>
>
> > Hi All,
> > I am using jemalloc.c source from FreeBSD-current source.
> > When i allocate 1MB of memory using malloc() and use it as the below
> > test shows
> >
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include <string.h>
> >
> > int main()
> > {
> >        int i;
> >        char *buf;
> >        size_t size = 1048576 ;
> >
> >        buf = malloc(size);
> >        for (i = 0; i < 1048576; i++)
> >                buf[i] = 'a';
> >        printf("The length of buff is : %d\n",strlen(buf));
> >        free(buf);
> >        return 0;
> > }
> >
> > When i try to call strlen(buf) SEGV is recived.
> >
> > This behaviour is seen when only for 1MB chunk if i allocate
> > memory lesser than 1MB no issues noticed.
> >
> > Could anyone see similar problem?
> > Is the above test wrong?
> > Or some issue with huge memory allocation in jemalloc?
> >
> > Your response will be very helpful.
> >
> > Thanks & Regards,
> > Channa
> >
>
>  You did not NUL-terminate ('\0') the string.
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?515c64960901280401w1e1d08bfx29adc124bc749c4a>