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í
×

dnes 11:40 | Nová verze

Vyšly nové verze 1.3.0 a 1.2.1 WYSIWYM editoru Formiko. 1.3.0 vylepšuje editor, podporuje kontrolu pravopisu pomocí knihovny GtkSpellCheck 3.x a přidává možnost tisku vygenerovaného HTML dokumentu a dialog klávesových zkratek. Vydání je dostupné v Debianu testing, Ubuntu a také PIP. Vydání 1.2.1 opravuje různé chyby a zvyšuje stabilitu, více v seznamu změn; do budoucna bude tato větev udržována jen v případě zájmu (na NetBSD není dostupná knihovna GtkSpellCheck 3.x).

McBig | Komentářů: 1
dnes 08:00 | Zajímavý software

Facebook uvolnil svou platformu pro detekci objektů s názvem Detectron. Detectron je naprogramován v Pythonu a využívá framework pro deep learning Caffe2. Zdrojové kódy Detectronu jsou k dispozici na GitHubu pod licencí Apache 2.0.

Ladislav Hagara | Komentářů: 2
dnes 03:00 | Komunita

Bylo spuštěno hlasování o přednáškách a workshopech pro letošní InstallFest, jenž proběhne o víkendu 3. a 4. března 2018 v Praze na Karlově náměstí 13. Hlasovat lze do pondělí 29. ledna 2018.

Ladislav Hagara | Komentářů: 0
dnes 02:00 | Zajímavý software

Projekt Document Liberation, jehož cílem je vývoj knihoven pro zpřístupnění (osvobození) dokumentů vytvořených v proprietárních nebo již nepodporovaných formátech, oznámil vydání 5 nových nebo vylepšených knihoven. Jedná se o knihovnu libe-book pro export dokumentů ve formátu EPUB3 a knihovny libabw, libmspub, libpagemaker a libqxp pro import dokumentů ve formátech AbiWord, MS Publisher, PageMaker a QuarkXPress.

Ladislav Hagara | Komentářů: 0
dnes 01:00 | Komunita

LWN.net, původně Linux Weekly News, slaví 20 let. První číslo vyšlo 22. ledna 1998. Psalo se o devfs, o 2 GB omezení velikosti souborů na souborovém systému ext2 nebo o renderování scén ve filmu Titanic na Linuxu na procesorech Alpha. Aktuální vývojové linuxové jádro bylo 2.1.79. LWN.net je zcela závislé na předplatitelích. Předplatné na měsíc stojí 7 dolarů. Články na LWN.net jsou týden od vydání k dispozici pouze předplatitelům. Následně jsou uvolněny všem pod licencí CC-BY-SA.

Ladislav Hagara | Komentářů: 0
včera 15:22 | Pozvánky

V sobotu 24. 2. se uskuteční již 5. ročník největší české WordPress konference – WordCamp Praha 2018. Pražský WordCamp bude rozdělen na dva proudy – pro uživatele a pro vývojáře. Je naplánováno 10 přednášek, 6 workshopů, 6 případových studií, Happines Bar a spousty příležitostí pro networking. V neděli se bude dále konat Contributing Day, kde se každý bude moci aktivně zapojit do překladu, či plánování dalších meetupů. Je připraveno 450

… více »
smíťa | Komentářů: 0
včera 05:55 | Komunita

Linus Torvalds oznámil vydání Linuxu 4.15-rc9. Po vydání stabilní verze Linuxu se přibližně na 2 týdny otevře začleňovací okno. To se uzavře vydáním verze rc1. Po týdnech následují další rc verze. Obvykle týden po vydání verze rc7 nebo rc8 následuje vydání nové stabilní verze Linuxu. Verze rc9 byla naposledy vydána před více než 6 lety, 4. října 2011. Jednalo se o Linux 3.1. Tenkrát následovala ještě verze rc10.

Ladislav Hagara | Komentářů: 15
21.1. 21:55 | Zajímavý článek

Greg Kroah-Hartman se v příspěvku na svém blogu věnuje aktuálnímu stavu řešení bezpečnostních chyb Meltdown a Spectre v Linuxu. Jak je na tom Váš Linux? Stačí spustit příkaz "grep . /sys/devices/system/cpu/vulnerabilities/*". Pro více informací lze doporučit Spectre & Meltdown Checker.

Ladislav Hagara | Komentářů: 46
19.1. 18:55 | Komunita

NHSbuntu (Joinup, prezentace) měla být z Ubuntu vycházející linuxová distribuce přizpůsobená pro potřeby britské Národní zdravotní služby (NHS). NHS se název nelíbil, nejednalo se o oficiální projekt NHS, a proto bylo NHSbuntu v září loňského roku přejmenováno na NHoS. Vývojáři NHoS tento týden oznámili, že NHS se nelíbí ani název NHoS a už nemají sílu na další přejmenování a pokračování v projektu. Dodávají, že několik jednání s vedením

… více »
Ladislav Hagara | Komentářů: 7
19.1. 18:44 | Pozvánky

Koncem ledna, 29. 1. 2018 od 17 do 20 hodin se v Akademii CZ.NIC uskuteční večer s Turrisem.

Co bude na programu?… více »
Miška | Komentářů: 19
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (7%)
 (1%)
 (1%)
 (1%)
 (77%)
 (13%)
Celkem 1376 hlasů
 Komentářů: 53, poslední 17.1. 16:55
    Rozcestník

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

    18.12.2011 21:03 | Přečteno: 1456× | 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: 71 | 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: 71 | 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áknoNahoru

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