Glibc, Flash ed i problemi degli utenti

12-11-2010 09:00 - Fonte: www.ossblog.it

Immagino che tutti abbiate prima o poi avuto problemi con il plugin per Flash. Recentemente molti utenti si sono accorti di un fastidioso problema all’audio durante la riproduzione audio. Su Fedora è possibile seguire la discussione in cui si arriva a capire la causa e cosa l’ha scatenata. I messaggi sono molti, ma per riassumervi il tutto questi sono i due ingredienti del problema: il plugin flash utilizza la funzione memcpy anche per area di memoria che si sovrappongono. In questi casi si dovrebbe usare la funzione memmove che ha un comportamento corretto a prescindere dai parametri l’implementazione della memcpy è stata modificata per migliorarne la velocità su alcuni processori e questo ha “svelato” il problema che prima non veniva rivelato Nella discussione generata potete trovare molti commenti interessanti con qualche intervento di Linus. Il bug relativo alla Glibc è stato chiuso come NOTABUG perché giustamente non si tratta di un bug, ma quanto ci metterà Adobe a correggere questo fastidioso problema? È corretto che i ragazzi della glibc abbandonino gli utenti a questo problema quando si potrebbe trovare facilmente una soluzione? Secondo Torvalds è inutile coinvolgere e far soffrire così gli utenti. Se avete questo problema potete usare il codice seguente con LD_PRELOAD come workaround. prompt$ cat > mymemcpy.c #include void *memcpy(void *dst, const void *src, size_t size) { void *orig = dst; asm volatile(”rep ; movsq” :”=D” (dst), “=S” (src) :”0″ (dst), “1″ (src), “c” (size >> 3) :”memory”); asm volatile(”rep ; movsb” :”=D” (dst), “=S” (src) :”0″ (dst), “1″ (src), “c” (size & 7) :”memory”); return orig; } ^D prompt$ gcc -O2 -c mymemcpy.c prompt$ ...

- Continua...