Hi,

i'm running a FreeBSD 7.0 amd64 machine and struggling with some C code i'm writing.

I've had some trouble with this home-made script as it keeps crashing while launching a "realloc()" call.

I narrowed down the problem and here i'm sending you a short example of code that crashes:

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

int main()
{

       int midataula;

       midataula = 3000;

       char *missatge = (char *)malloc(midataula * sizeof(char));

       missatge[0]='h';
       missatge[1]='o';
       missatge[2]='l';
       missatge[3]='a';

       printf("\n\ntaula1: %s",missatge);

       int voltes;
       voltes = 0;

       while(voltes<4)
       {
               midataula = midataula+500;
               realloc(missatge, midataula * sizeof(char));
               voltes++;
       }


       printf("\n\ntaula2: %s",missatge);
}
*************


this is a full "working" you can compile on your machine.

Like this... i get "Segmentation fault (core dumped)"

but if instead of "while(voltes<4)" i use "while(voltes<3)"

the script works fine with this output:

**********
taula1: hola

taula2: hola
**********

so... i guess there must be a limit in the system somewhere.

I've tried to reset all variables that i've seen in the "sysctl -a" list refering to malloc, memory, mem, and so on... but so far i haven't fixed the problem.

i'm running this script as root and in the /etc/login.conf file there's only the "default" group with the "unlimited" values.
A part from that, if i perform a "limit" call, i get this:

*************

# limit
cputime      unlimited
filesize     unlimited
datasize     33554432 kbytes
stacksize    524288 kbytes
coredumpsize unlimited
memoryuse    unlimited
vmemoryuse   unlimited
descriptors  45000
memorylocked unlimited
maxproc      22500
sbsize       unlimited

*************

i've tried to resize datasize and stacksize, but the system won't let me do so.

any idea how to solve this?

thanks.

_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to