:: Re: [DNG] Pointer error in the back…
Etusivu
Poista viesti
Vastaa
Lähettäjä: aitor_czr
Päiväys:  
Vastaanottaja: dng
Aihe: Re: [DNG] Pointer error in the backend of Netman
Changing from:

realloc(active_wifis

to:

realloc(&active_wifis .....

the pointer error disappears:

# ./backend 10

/sbin/ifup: interface wlan0 already configured

:)

Aitor.

On 12/10/2015 09:58 AM, aitor_czr <aitor_czr@???> wrote:
> Sorry:
>
> printf("\nactive_wifis = %i\n\n", *active_wifis);
>
> On 12/10/2015 09:30 AM, aitor_czr wrote:
>> >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