|
|
|
|
Strumenti |
03-08-2005, 10:31 | #1 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
[OT] Fidiamoci dei driver closed source!
Dopo diverso tempo, sono riuscuito a trovare i sorgenti di uno stupido driver della Motorola per un suo processore, che inizialmente la Motorola non aveva distribuito ritenendolo forse "troppo banale".
Nei sorgenti c'è questa chicca: Codice:
ssize_t hwb_read(struct file *filp, char *buf, size_t size, loff_t *l) { *((unsigned long *)buf) = dataToReturn; return size; } Un vero record.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
03-08-2005, 11:13 | #2 |
Senior Member
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9219
|
ilsensine puoi spiegare quali sono i bug?
P.S. scusa l'ignoranza... |
03-08-2005, 11:32 | #3 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quel driver serve per accedere allo spazio di i/o da user space di un processore sul quale la normale mmap di /dev/mem non funziona per questi registri. Già la struttura del driver è discutibile, in quanto basata su read/write (in questo caso particolare la ioctl era meglio). Se devi leggere un registro, tramite la write comunichi una struttura con le informazioni necessarie, e tramite la read recuperi il valore letto.
L'elenco, forse parziale, è questo: Bug #1: dataToReturn è una variabile globale, non specifica per "file" aperto. Se più processi usano il driver, è una divertente race fest. Bug #2: dataToReturn non è mai inizializzata, ed è leggibile anche se nessuna operazione di "read" è stata comunicata al driver. Bug #3: Non c'è controllo del parametro "size" passato dal programma. Molti registri del processore restituiscono uno o due byte validi, quindi si può legittimamente chiamare la read con 1 o 2. L'effetto è un possibile overflow del buffer utente. Bug #4: Il valore di ritorno non deve essere "size" ma i byte effettivamente scritti. Bug #5: Bug gravissimo dovuto alla mancata validazione del puntatore utente "buf". Gli effetti collaterali possono andare da semplici kernel oops (anche in situazioni dove "buf" è valido) a corruzione della memoria del kernel. Ne ho visti un pò di driver della Motorola; vi lascio immaginare cosa sono in grado di combinare con un driver completo
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
03-08-2005, 11:37 | #4 |
Senior Member
Iscritto dal: Sep 2004
Città: Padova
Messaggi: 11642
|
moolto interessante
sono un emerito ignorante in programmazione ... però ... fino a capire che closed = non così direttamente verificabile/migliorabile ci arrivo ... nonostante le discussioni dei giorni scorsi su open/closed ... closed dentro l'open etc etc ...
__________________
mac user = hai soldi da buttare; linux user = hai tempo da buttare; windows user = hai soldi e tempo da buttare |
03-08-2005, 11:44 | #5 |
Senior Member
Iscritto dal: Aug 2004
Messaggi: 19256
|
Secondo me è una bella discussione, mi iscrivo.
__________________
"Le statistiche sono come le donne lascive: se riesci a metterci le mani sopra, puoi farci quello che ti pare" Walt Michaels |
02-10-2005, 11:43 | #6 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5964
|
Quote:
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
02-10-2005, 11:47 | #7 | |
Bannato
Iscritto dal: Sep 2005
Messaggi: 593
|
Quote:
|
|
02-10-2005, 12:07 | #8 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5964
|
Quote:
E poi ci si chiede anche il perché non utilizzare più software open source.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
02-10-2005, 12:09 | #9 | |
Bannato
Iscritto dal: Sep 2005
Messaggi: 593
|
Quote:
non ci ho messo le mani , ma mi fido di te ma quello che ti voglio dire è che siccome quel codice è pieno di errori non vuol dire che tutti i software closed siano così |
|
02-10-2005, 12:21 | #10 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5964
|
Quote:
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
02-10-2005, 12:29 | #11 | |
Bannato
Iscritto dal: Sep 2005
Messaggi: 593
|
Quote:
eh? quando mai ho detto qualcosa di simile ! non facciamo di tutta un erba un fascio per favore uff è una maledizione essere liberi qua dentro.. |
|
02-10-2005, 13:45 | #12 |
Senior Member
Iscritto dal: Mar 2004
Città: Monza e Brianza
Messaggi: 2034
|
nella lettera aperta agli hobbysti, bill gates dice: chi scriverebbe un software di qualità se a nessuno importa se venite pagati o meno per farlo?
__________________
Apple MacBook Pro Retina - Apple iMac - Fujifilm X20 - Canon 5d Mk III - Canon 50mm 1,4 - Canon 28mm - Tamrac Expedition 5 |
02-10-2005, 13:49 | #13 | |
Bannato
Iscritto dal: Sep 2005
Messaggi: 593
|
Quote:
E rispetto le sue opinioni.. in parte la penso anchio così ; penso che con i soldi in mezzo uno ci mette forse di più.. di sicuro nessuna versione di linux gratuita è come red hat ad esempio .. |
|
02-10-2005, 13:58 | #14 | |
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13826
|
Quote:
E inizia il flame Debian Rulezzz Ciao
__________________
GPU Compiler Engineer |
|
02-10-2005, 14:08 | #15 | |
Bannato
Iscritto dal: Sep 2005
Messaggi: 593
|
Quote:
hai ragione niente flame.. ma.. si può anche scambiare pareri senza flame .. però se red hat è la N1 nei server professionali c'è un perchè.. |
|
02-10-2005, 14:08 | #16 |
Senior Member
Iscritto dal: Mar 2004
Città: Monza e Brianza
Messaggi: 2034
|
non voglio andare ma ot, ma non penso che torvalds quando ha creato il toolkit
riscrivendolo col la filosofia open source non abbia fatto software di qualità.. chi crede nell'open source, lavora bene e basta..se poi pensi ai soldi, non dovresti manco installarlo linux..
__________________
Apple MacBook Pro Retina - Apple iMac - Fujifilm X20 - Canon 5d Mk III - Canon 50mm 1,4 - Canon 28mm - Tamrac Expedition 5 |
02-10-2005, 15:10 | #17 |
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
Sei sicuro che la funzione venga utilizzata?
Perché nei sistemi closed source a volte viene usato un sistema di "firma" che protegga dalle copiature indiscriminate: si aggiunge una funzione inutile, fatta appositamente male, che uno andrebbe a riproporre solo se copia pedissequamente il codice, altrimenti non si sognerebbe mai di scriverla. In un eventuale causa per plagio l'eccezionalità dell'anomalia depone a favore del proprietario, perché l'altro non può dire: "le funzioni sono simili perché anch'io, da solo, sono arrivato a implementarne una che fa le stesse cose e, giocoforza, è scritta più o meno uguale". |
03-10-2005, 10:44 | #18 | ||
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
03-10-2005, 11:45 | #19 | |
Senior Member
Iscritto dal: Jan 2004
Città: /dev/sda1
Messaggi: 4060
|
Quote:
Redhat non ha un grande linux sotto il culo, ma ha semplicemente una grande assistenza, ed è per quello che è la numero 1 nei server professionali Per ilr esto redhad, senza voglia di fare flame, come emanazione di linux è decisamente mediocre. Vecchiotta, poco funzionale, poco aggiornata, basso riconoscimento hardware, poco versatile da impostare, con nemmeno un grande corredo di software. Infatti fa da server. ciao ciao!
__________________
| Linux User #391140 | Sito Ufficiale del LOLUG - Gruppo Utenti Linux Lodi - www.lodi.linux.it |
|
03-10-2005, 12:05 | #20 | |
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
Quote:
|
|
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:40.