Nп/п : 35 из 100
 От   : The Natural Philosopher             2:5075/128        15 сен 23 14:56:23
 К    : Theo                                                  15 сен 23 16:57:03
 Тема : Re: Weird code crash
----------------------------------------------------------------------------------
                                                                                 
@MSGID: 1@dont-email.me> c56a6da7
@REPLY: 5Arqz@news.chiark.greenend.org.uk>
8f646d19
@REPLYADDR The Natural Philosopher
<tnp@invalid.invalid>
@REPLYTO 2:5075/128 The Natural Philosopher
@CHRS: CP866 2
@RFC: 1 0
@RFC-Message-ID: 1@dont-email.me>
@RFC-References: 1@dont-email.me>
<ygamsxoixhx.fsf@akutech.de> 4@dont-email.me> <ygail8biyxm.fsf@akutech.de>
1@dont-email.me> <ygaedizitb9.fsf@akutech.de> 2@dont-email.me>
5Arqz@news.chiark.greenend.org.uk>
@TZUTC: 0100
@PID: Mozilla/5.0 (X11; Linux x86_64; rv:102.0)
Gecko/20100101 Thunderbird/102.15.1
@TID: FIDOGATE-5.12-ge4e8b94
On 15/09/2023 14:23, Theo wrote:
> In comp.sys.raspberry-pi The Natural Philosopher <tnp@invalid.invalid> wrote:
>> On 15/09/2023 12:12, Ralf Fassel wrote:
>>> |                             {
>>> |                             *q++=0;
>>> |                             thermometers[i].name=strdup(p); //
>>> |                             make a copy of the name and attach it
>>> |                             to our thermometer structure
>>>
>>> Memory leak if thermometers[i].name already contains something.
>>>
>> further up the line...
>>
>>          bzero(filbuf,sizeof(filbuf));
>>          /** first thing to do is clean any allocated memory used to store
>> values. **/
>>          for(i=0;i >>                  free(thermometers[i].name);

> You could get a SIGABRT if you were trying to free something that was
> already freed.  Are you sure those are interlocked such that for each i you
> call strdup() exactly once, and subsequently free() exactly once?  If there
> was some code path that was breaking out of the loop or similar you might
> get such behaviour.

Hmm. I free the pointers even for relay zones that don`t have 
thermometers, whose pointers are 0. That isn`t an issue.

But that might be a remotely possible  issue. I dont zero the pointers 
after freeing them as far as I can tell. The silly thing is that this 
program doesn`t use the name anyway.

Its used elsewhere
Well I don`t think its an issue, but I can zero the pointers anyway 
after free()ing

> Theo

-- 
"I guess a rattlesnake ain`t risponsible fer bein` a rattlesnake, but ah 
puts mah heel on um jess the same if`n I catches him around mah chillun".


 --- Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
Thunderbird/102.15.1
 * Origin: A little, after lunch (2:5075/128)
SEEN-BY: 5001/100 5005/49 5015/255 5019/40 5020/715
848 1042 4441 12000
SEEN-BY: 5030/49 1081 5058/104 5075/128
@PATH: 5075/128 5020/1042 4441



   GoldED+ VK   │                                                 │   09:55:30    
                                                                                
В этой области больше нет сообщений.

Остаться здесь
Перейти к списку сообщений
Перейти к списку эх