Forum

Nome Utente:
Password:
Riconoscimi automaticamente
 Tutti i Forum
 MolecularLab
 Bioinformatica
 [OT] una 'gets' in clustalw?
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
I seguenti utenti stanno leggendo questo Forum Qui c'è:

Aggiungi Tag Aggiungi i tag

Quanto è utile/interessante questa discussione:

Autore Discussione  

dallolio_gm
Moderatore


Prov.: Bo!
Città: Barcelona/Bologna


2445 Messaggi

Inserito il - 18 gennaio 2006 : 00:08:57  Mostra Profilo  Visita l'Homepage di dallolio_gm  Clicca per vedere l'indirizzo MSN di dallolio_gm Invia a dallolio_gm un Messaggio Privato  Rispondi Quotando
ok e' una stupidaggine e io non me ne intendo.. ma ho visto che c'e' una 'gets' nel codice di clustalw!
Nn e' una di quelle funzioni da non usare mai per nessun motivo al mondo?
Si trova a linea 2179 di interface.c (ce ne sono altre). Dovrebbe servire per prendere in input il nome del file di output, e che dovrebbe contenere un array di 256 caratteri, ma visto che si usa una gets, questo non avviene.
Ma se ne metto di piu' cosa succede esattamente? La variabile dichiarata subito dopo e' un prompt..

Il mio blog di bioinformatics (inglese): BioinfoBlog
Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-)

chick80
Moderatore

DNA

Città: Edinburgh


11491 Messaggi

Inserito il - 18 gennaio 2006 : 00:45:03  Mostra Profilo  Visita l'Homepage di chick80 Invia a chick80 un Messaggio Privato  Rispondi Quotando
Diciamo che gets è una funzione da usare con molta cautela.

gets legge da stdin fino al primo /0 o /r e quindi può restituire una stringa di lunghezza variabile. Sta a te allocare memoria a sufficienza per contenerla. Molto meglio usare fread a mio parere. (o cin se usi C++)
Se oltrepassi il limite dei 256 bytes allocati per la variabile, potresti avere memory leaks che possono: a) far crashare il tutto quando metti il nome del file b) far crashare il tutto in un secondo momento quando vai ad accedere alla zona di memoria oltre i 256 bytes c) se il programma gira su un server un 'malicious user' potrebbe sfruttare questi memory leaks a suo vantaggio.

Vedo cmq che nel form sul web il campo x il nome file e' limitato a 50 caratteri, non ho idea di come sia fatto il software che scarichi.

Sei un nuovo arrivato?
Leggi il regolamento del forum e presentati qui

My photo portfolio (now on G+!)
Torna all'inizio della Pagina

dallolio_gm
Moderatore


Prov.: Bo!
Città: Barcelona/Bologna


2445 Messaggi

Inserito il - 18 gennaio 2006 : 18:31:32  Mostra Profilo  Visita l'Homepage di dallolio_gm  Clicca per vedere l'indirizzo MSN di dallolio_gm Invia a dallolio_gm un Messaggio Privato  Rispondi Quotando
Gia', il problema e' che gets non controlla la lunghezza della stringa che viene inserita! Questo vuol dire che se l'utente inserisce un numero di caratteri eccessivo, questi vanno a finire fuori dalla area di memoria riservata. Provare per credere!
Mi era sembrato strano di vedere una cosa del genere in un software cosi' utilizzato.. e' che ho sentito dire che e' un errore piuttosto pericoloso.
Dai, quando apriamo un blog di sicurezza bioinformatica?

Il mio blog di bioinformatics (inglese): BioinfoBlog
Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-)
Torna all'inizio della Pagina
  Discussione  

Quanto è utile/interessante questa discussione:

 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
Vai a:
MolecularLab.it © 2003-18 MolecularLab.it Torna all'inizio della Pagina