Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > it.comp.os.linux.development > #40

Re: Funzione strlen()

From Giuseppe Della Bianca <bepi.zac@zac.adria.it>
Newsgroups it.comp.os.linux.development
Subject Re: Funzione strlen()
Date 2017-06-04 12:20 +0200
Organization Aioe.org NNTP Server
Message-ID <vf3d0e-feb.ln1@exnet.gdb.it> (permalink)
References <oh0fj5$1adr$1@gioia.aioe.org>

Show all headers | View raw


guido84 wrote:

]zac[
> char a[elle];
> 
> if (argc==2)
> {
> sscanf(argv[1], "%s", a);
> printf("\n%u\n\n", strlen(a));
]zac[
> Il mio problema e' questo:
> - Quando ho immesso piu' di 80 caratteri, ho provocato segfault.
> - Ma come faccio a dirgli di uscire se son piu' di 80, quando e'
> lei stessa (strlen) che deve contarli?!
]zac[

Il buffer overflow e' causato dalla funzione sscanf che scrive nella 
variabile fino ad andare oltre la dimensione della stessa.
Il codice scritto dopo non puo' prevenire un problema che e' gia' avvenuto.

E' compito del programmatore scrivere il codice impedendo alle varie 
funzioni di comportarsi scorrettamente.

P.S.
Non credi che dovresti provare a cercare su google sscanf + segfault o 
sscanf + buffer overflow?

(Il miglior modo di imparare e' sfruttare le risorse e le esperienze 
liberamente disponibili cercando di capire quale e' quella giusta).

Back to it.comp.os.linux.development | Previous | NextPrevious in thread | Find similar


Thread

Funzione strlen() guido84 <guido84@invalid.invalid> - 2017-06-04 08:15 +0000
  Re: Funzione strlen() Giovanni <lsodgf0@home.net.it> - 2017-06-04 11:39 +0200
  Re: Funzione strlen() Giovanni <lsodgf0@home.net.it> - 2017-06-04 11:41 +0200
    Re: Funzione strlen() guido84 <guido84@invalid.invalid> - 2017-06-04 14:13 +0000
  Re: Funzione strlen() Giuseppe Della Bianca <bepi.zac@zac.adria.it> - 2017-06-04 12:20 +0200

csiph-web