abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 21:29 | Nová verze

    Open source download manager Fatrat povstal z popela. Autor k dvacetiletému výročí projektu přidal do vínku podporu nejnovější knihovny libtorrent, rozhraní portoval na QT6, došlo k nahrazení podpory java rozšíření pythonem. Webové rozhraní bylo přepsáno s podporou mobilních zařízení. Aplikaci je taktéž možno zkompilovat bez podpory GUI. Více informací v releases.

    Max | Komentářů: 4
    včera 21:11 | Bezpečnostní upozornění

    Zranitelnost Broccoli2Shell (CVE-2026-111497) v kompresní knihovně Brotli se netýká pouze Node.js. Ohroženy jsou také aplikace využívající HTTP. Knihovnu používají webové prohlížeče, servery i řada dalších aplikací a technologií, například také Python nebo Bun. Identifikace všech zranitelných komponent může být obtížná, protože knihovna bývá součástí dalších softwarových balíčků nebo je přímo začleněna do spustitelných souborů aplikací.

    Ladislav Hagara | Komentářů: 1
    včera 18:33 | Komunita

    Quad9, švýcarský celosvětově působící neziskový poskytovatel DNS, od 24. listopadu 2026 ukončí své služby ve Francii kvůli soudnímu sporu s katarskou televizní stanicí beIN. Ta požadovala blokování domén, které podle ní nelegálně zpřístupňují sportovní přenosy. Francouzský soud Katarům vyhověl a nařídil (🇫🇷, PDF) Quad9 blokaci zavést, pod hrozbou pokuty 1000 eur denně. Provozovatel příkaz odmítá s tím, že blokace

    … více »
    Pendrekama do nich❗ | Komentářů: 0
    včera 15:22 | Zajímavý článek

    Článek na blogu APNIC vysvětluje, jak správně vytvářet a používat ASPA záznamy — podepsané objekty v RPKI, které uvádějí, kteří poskytovatelé směrování jsou pro dané autonomní číslo (ASN) oprávněni. Síťoví operátoři je mohou využít k ověřování tras BGP a k odhalování úniků tras či podvržených tras.

    vencour | Komentářů: 0
    včera 14:33 | Nová verze

    Byla vydána (𝕏) verze 8.0.0 open source programu pro prolamování hesel hashcat (GitHub, Wikipedie). Přehled novinek v příspěvku v diskusním fóru a pdf.

    Ladislav Hagara | Komentářů: 0
    včera 14:22 | Nová verze

    Byla vydána (𝕏, Bluesky) nová verze 2026.3 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 6 nových nástrojů v oficiálním oznámení na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 08:35 | Komunita
    Pořadatelé dalšího ročníku komunitního setkání správců nejen českých a slovenských sítí CSNOG 2027 upozorňují, Call for Abstracts pro blížící se akci (20. a 21. ledna 2027, Zlín) končí už 31. října, tedy na konci tohoto týdne.. … více »
    VSladek | Komentářů: 0
    24.10. 23:22 | Bezpečnostní upozornění

    Výzkumníci ukazují, jak mohou otevřené tunely a IPv6 Extension Headers synchronizovat pakety do krátkých provozních špiček. V kontrolovaném experimentu naměřili přes 180násobnou koncentraci paketového toku vůči průměrné rychlosti odesílání — nikoli 180násobné zvětšení objemu dat. Článek obsahuje metodiku, limity měření i mitigace pro GRE, IPIP a další tunely.

    vencour | Komentářů: 1
    24.10. 12:44 | Pozvánky

    Po velkém úspěchu prvního MobileLinux Hackdaye se vracíme do Českých Budějovic s druhým ročníkem. V pátek 30. října 2026 od 10:00 se v prostorách Jihočeské univerzity uskuteční Embedded & MobileLinux Hackday #2. Těšit se můžete na témata jako Immutable Linux na telefonech (BengalOS), U-Boot a upstream vývoj, AI optimalizace pro embedded systémy nebo otevřený hardware. Nebude chybět praktické hackování, sdílení zkušeností a možnost … více »

    lkocman | Komentářů: 1
    24.10. 00:44 | Bezpečnostní upozornění

    Dne 21. října 2026 vydal projekt Node.js bezpečnostní aktualizace opravující deset zranitelností, včetně jedné umožňující potenciální vzdálené spuštění kódu (RCE). Nejzajímavější je CVE-2026-111497, chyba dekodéru Brotli, kterou objevili výzkumníci využívající OpenAI Codex Security. Chyba je v nativním dekodéru Brotli, nikoli v samotném JavaScriptu. Speciálně vytvořený komprimovaný vstup způsobí, že dekodér zamění

    … více »
    vencour | Komentářů: 15
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2917 hlasů
     Komentářů: 34, poslední včera 08:24
    Rozcestník

    strcpy(): narušení \W v $PS1

    18.12.2011 21:03 | Přečteno: 2764× | Programování | Výběrový blog | poslední úprava: 18.12.2011 21:06

    Debian GNU/Linux Squeeze x86_64 obsahuje verzi Bashe, ve kterém se projevuje chyba při expanzi \W, v proměné $PS1, např. při vstupu do adresáře na první úrovni o velikosti čtyři znaky.

    $ PS1="\W$ "
    $ cd /boot
    bott$ cd /home
    hmee$ cd /proc
    pocc$
    

    Bugfix, vypadá následovně (String corruption using \W in prompt):

    t = strrchr (t_string, '/');
    if (t)
    -    strcpy (t_string, t + 1);
    +    memmove (t_string, t + 1, sizeof(t));
    

    Na první pohled by si jeden řekl, v čem je problém, i při pohledu do implementace vypadá fce strcpy() tak jak jsem si jí představoval.

    $ apt-get source eglibc
    $ cd eglibc-2.11.2/string/
    $ cpp strcpy.c
    
    typedef long int ptrdiff_t;
    
    char *
    strcpy (dest, src)
         char *dest;
         const char *src;
    {
      char c;
      char * s = (char *) (src);
      const ptrdiff_t off = (dest) - s - 1;
      size_t n;
    
      do
        {
          c = *s++;
          s[off] = c;
        }
      while (c != '\0');
    
      n = s - src;
      (void) (src + n);
      (void) (dest + n);
    
      return dest;
    }
    

    Ale v manuálové stránce k fci strcpy() píší, že se vstupní řetězce nesmí překrývat. Což mě nasměruje ke spuštění:

    $ find -name 'strcpy.*'
    ./sysdeps/powerpc/powerpc32/strcpy.S
    ./sysdeps/powerpc/powerpc64/strcpy.S
    ./sysdeps/ia64/strcpy.S
    ./sysdeps/i386/i586/strcpy.S
    ./sysdeps/x86_64/strcpy.S
    ./sysdeps/x86_64/multiarch/strcpy.S
    ./sysdeps/s390/s390-64/strcpy.S
    ./sysdeps/s390/s390-32/strcpy.S
    ./sysdeps/sparc/sparc32/sparcv9/strcpy.S
    ./sysdeps/sparc/sparc32/strcpy.S
    ./sysdeps/sparc/sparc64/strcpy.S
    ./string/strcpy.c
    ./ports/sysdeps/vax/strcpy.s
    ./ports/sysdeps/alpha/strcpy.S
    

    Při letmém pohledu do ./sysdeps/x86_64/strcpy.S už je nasnadě, že zakopaný pes je v optimalizacích pro architekturu x86_64, tj. implementace fce strcpy() přímo v assembleru.

    Ponaučení, je lepší se přesvědčit, alespoň v manuálové stránce, že zamýšlené použití fce je přípustné, nežli střílet od boku. ;-)

    Problém lze obejít tak, že se místo '\W' použije:

    '$(basename $PWD)'
    
           

    Hodnocení: 100 %

            špatné • dobré        

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

    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
    Příloha:
    Příloha ./sysdeps/x86_64/strcpy.S.
    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
    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
    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
    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ákno • Nahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.