:: Re: [DNG] Pointer error in the back…
Page principale
Supprimer ce message
Répondre à ce message
Auteur: aitor_czr
Date:  
À: Edward Bartolo
CC: dng
Sujet: Re: [DNG] Pointer error in the backend of Netman
Hi Edward,

The value of the integer parameter 'active_wifis', passed by reference
to 'getRadiatingWifiList' is lost. I added the following line 232:

[....]

*active_wifis = -1;
char* tmp_buffer = scan_buffer;
printf("\nactive_wifis = %i\n\n", active_wifis);  /***** ADDED LINE ****/
while((scan_buffer = fgets(scan_buffer, 1024, shell_reader)))
{
   z++;
   if (z == 1)
      active_wifi_list = calloc(sizeof(void*), 10);


[....]

And this is what i get running ./backend 10:

# ./backend 10

active_wifis = -877165076

*** Error in `./backend': realloc(): invalid pointer: 0x00007fff124a3424 ***
Aborted

Cheers,

    Aitor.


On 12/06/2015 03:19 PM, Edward Bartolo wrote:
> Hi Aitor,
>
> This is my latest edit of the code so that memory allocations are done
> when needed instead of the iteration just before more memory is
> required.
>
> The edited code:
>                  if (z == 1)
>             active_wifi_list = calloc(10, sizeof(void*));
>         else if ((z - 1) % 20 == 0)
>             active_wifi_list = realloc(active_wifis, (((z - 1)/2) + 10)*sizeof(void*));

>
>
> Edward
>
> On 06/12/2015, aitor_czr<aitor_czr@???> wrote:
>> >Hi Edward,
>> >
>> >I will try it later, thanks:)
>> >
>> >    Aitor.

>> >
>> >On 12/06/2015 01:10 PM, Edward Bartolo wrote:
>>> >>Hi Aitor,
>>> >>
>>> >>I edited the code as follows:
>>> >>
>>> >>        if (z == 1)
>>> >>            active_wifi_list = calloc(10, sizeof(void*));
>>> >>        else if (z % 20 == 0)
>>> >>            active_wifi_list = realloc(active_wifis, ((z/2) + 10)*sizeof(void*));

>>> >>
>>> >>Please, if you can run the code and reply back whether it worked. My
>>> >>neighbourhood has less than 10 active wifi repeaters.
>>> >>
>>> >>Edward