[C]Podivnosti,Was: malloc/free

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Čtvrtek Listopad 3 12:23:44 CET 2016


Teda pouzit strcpy na prekryvajici se retezce, to by me ani ve snu... ;-)
Dne 03.11.2016 v 11:57 Miroslav Mraz napsal(a):
> A nejen v oblasti mcu. Zrovna včera jsem hledal chybu v jednom 
> projektu - je to jakýsi nástroj pro PLC, jehož historie se zřejmě 
> táhne do časů MSDOS. Tak jsem to chtěl upravit aby to mohlo běžet i v 
> nějakém normálním prostředí (především linux) a narazil jsem - prostě 
> to vyhazovalo chyby. Protože to má celé asi 13000 řádek kódu, chvíli 
> mi trvalo než se podařilo chybu izolovat - ukázalo se, že problém je v 
> knihovní funkci strcpy(char* dest, const char* src), která opravdu do 
> dest uložila něco jiného než bylo původně v src.
> To bylo docela neočekávané, ale stačí se podívat do manuálu - řetězce 
> se nesmí překrývat. A zde je jádro pudla. Ten, kdo nástroj kdysi 
> tvořil prostě na tohle kašlal. Protože "taky to funguje" a ve windows 
> to opravdu funguje. Nedalo mi to se nepodělit, protože upřímně řečeno 
> takhle někdy "prasím" taky. A kdo ne, ať hodí kamenem.
>
> A nevím, zda je to nekompetentnost, lenost nebo se jen věci vyvíjejí a 
> jak už to bývá zvykem, obvykle k horšímu. Protože workaround spočívá v 
> tom, že strcpy() nahradím prostým kopírováním byte po bytu. Což asi 
> původně tak i bylo.
>
> Mrazík
>
> Dne 3.11.2016 v 10:13 Jan Waclawek napsal(a):
>>
>>> taky to funguje
>>
>> Ano, toto je klasicky priznak nekompetentnosti v oblasti mcu.
>>
>>
>> wek
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list