Portál AbcLinuxu, 14. května 2024 02:30


Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
Fuky avatar 18.12.2011 21:05 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: strcpy(): narušení \W v $PS1
Odpovědět | Sbalit | Link | Blokovat | Admin
Příloha:
Příloha ./sysdeps/x86_64/strcpy.S.
-- RÁMO: psí tábor , ETriatlon: Výuka plavání
18.12.2011 22:09 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: strcpy(): narušení \W v $PS1
Odpovědět | Sbalit | Link | Blokovat | Admin
Problém lze obejít tak, že se místo '\W' použije:
'$(basename $PWD)'

To bych nedoporučoval, protože by to znamenalo spuštění nového programu při každém zobrazení promptu. Praktičtější by bylo '${PWD##*/}'

18.12.2011 23:43 Kuk!
Rozbalit Rozbalit vše Re: strcpy(): narušení \W v $PS1
Odpovědět | Sbalit | Link | Blokovat | Admin
Hmm, k cemu je tam na konci

(void) (src + n);

(void) (dest + n);

?
Fuky avatar 19.12.2011 08:37 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: strcpy(): narušení \W v $PS1

Jak je naznačeno, kód je prohnaný preprocesorem, původně je tam makro, které umožňuje zkompilovat ladící verzi s aktivovanou kontrolou hranic ukazatelů.

(void) CHECK_BOUNDS_HIGH (src + n);
(void) CHECK_BOUNDS_HIGH (dest + n);

why the performance of strcpy in glibc is worse?

19.12.2011 06:11 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: strcpy(): narušení \W v $PS1
Odpovědět | Sbalit | Link | Blokovat | Admin
Ještě dvě poznámky: 1. Ani ten céčkový zdroják, který je tu uveden, by obecně nefungoval při překryvu (jen by vadil opačný případ dest > src). 2. strcpy() je IIRC jedna z funkcí, které dostatečně nové verze gcc nahrazují vlastní optimalizovanou implementací, takže ani ta assemblerová verze ze zdrojáků glibc nemusí být tou, která se nakonec skutečně použije.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.