Riordinamento completo degli indici. Create della macro ad hoc per la
[gapil.git] / filestd.tex
index aeeb9a02770ec4792f5ff805d0f4746ed3b9e3df..b507ea0e25813f200b876dc927c92c7df667c43e 100644 (file)
@@ -746,10 +746,9 @@ viene restituito un \val{NULL}, ed il buffer \param{buf} non viene toccato.
 L'uso di \func{gets} è deprecato e deve essere assolutamente evitato; la
 funzione infatti non controlla il numero di byte letti, per cui nel caso la
 stringa letta superi le dimensioni del buffer, si avrà un \textit{buffer
-  overflow}\index{\textit{buffer~overflow}}, con sovrascrittura della memoria
-del processo adiacente al buffer.\footnote{questa tecnica è spiegata in
-  dettaglio e con molta efficacia nell'ormai famoso articolo di Aleph1
-  \cite{StS}.}
+  overflow}\itindex{buffer~overflow}, con sovrascrittura della memoria del
+processo adiacente al buffer.\footnote{questa tecnica è spiegata in dettaglio
+  e con molta efficacia nell'ormai famoso articolo di Aleph1 \cite{StS}.}
 
 Questa è una delle vulnerabilità più sfruttate per guadagnare accessi
 non autorizzati al sistema (i cosiddetti \textit{exploit}), basta
@@ -866,8 +865,8 @@ Se il buffer di destinazione 
 subito, altrimenti il buffer viene allargato usando \func{realloc} e la nuova
 dimensione ed il nuovo puntatore vengono passata indietro (si noti infatti
 come per entrambi gli argomenti si siano usati dei
-\index{\textit{value~result~argument}}\textit{value result argument}, passando
-dei puntatori anziché i valori delle variabili, secondo la tecnica spiegata in
+\itindex{value~result~argument}\textit{value result argument}, passando dei
+puntatori anziché i valori delle variabili, secondo la tecnica spiegata in
 sez.~\ref{sec:proc_var_passing}).
 
 Se si passa alla funzione l'indirizzo di un puntatore impostato a \val{NULL} e
@@ -876,7 +875,7 @@ necessaria a contenere la linea. In tutti i casi si ottiene dalla funzione un
 puntatore all'inizio del testo della linea letta. Un esempio di codice può
 essere il seguente: 
 \includecodesnip{listati/getline.c} 
-e per evitare memory leak\index{\textit{memory~leak}} occorre ricordarsi di
+e per evitare \textit{memory leak}\itindex{memory~leak} occorre ricordarsi di
 liberare \var{ptr} con una \func{free}.
 
 Il valore di ritorno della funzione indica il numero di caratteri letti
@@ -931,9 +930,8 @@ quello specificato) la terza permette di stampare su una stringa, in genere
 l'uso di \func{sprintf} è sconsigliato in quanto è possibile, se non si ha la
 sicurezza assoluta sulle dimensioni del risultato della stampa, eccedere le
 dimensioni di \param{str}, con conseguente sovrascrittura di altre variabili e
-possibili \textit{buffer overflow}\index{\textit{buffer~overflow}}; per questo
-motivo si consiglia l'uso dell'alternativa \funcd{snprintf}, il cui prototipo
-è:
+possibili \textit{buffer overflow}\itindex{buffer~overflow}; per questo motivo
+si consiglia l'uso dell'alternativa \funcd{snprintf}, il cui prototipo è:
 \begin{prototype}{stdio.h}
 {snprintf(char *str, size\_t size, const char *format, ...)} 
   Identica a \func{sprintf}, ma non scrive su \param{str} più di
@@ -1118,7 +1116,7 @@ scritti sulla stringa di destinazione:
   \param{size} caratteri.
 \end{prototype}
 \noindent in modo da evitare possibili buffer
-overflow\index{\textit{buffer~overflow}}.
+overflow\itindex{buffer~overflow}.
 
 
 Per eliminare alla radice questi problemi, le \acr{glibc} supportano una
@@ -1140,14 +1138,15 @@ sono:
 
   \bodydesc{Le funzioni ritornano il numero di caratteri stampati.}
 \end{functions}
+
 Entrambe le funzioni prendono come argomento \param{strptr} che deve essere
 l'indirizzo di un puntatore ad una stringa di caratteri, in cui verrà
 restituito (si ricordi quanto detto in sez.~\ref{sec:proc_var_passing} a
-proposito dei \index{\textit{value~result~argument}}\textit{value result
-  argument}) l'indirizzo della stringa allocata automaticamente dalle
-funzioni. Occorre inoltre ricordarsi di invocare \func{free} per liberare
-detto puntatore quando la stringa non serve più, onde evitare memory
-leak\index{\textit{memory~leak}}.
+proposito dei \itindex{value~result~argument}\textit{value result argument})
+l'indirizzo della stringa allocata automaticamente dalle funzioni. Occorre
+inoltre ricordarsi di invocare \func{free} per liberare detto puntatore quando
+la stringa non serve più, onde evitare \textit{memory
+  leak}\itindex{memory~leak}.
 
 Infine una ulteriore estensione GNU definisce le due funzioni \func{dprintf} e
 \func{vdprintf}, che prendono un file descriptor al posto dello stream. Altre
@@ -1192,7 +1191,7 @@ questo argomento 
 sono varie differenze.  Le funzioni di input infatti sono più orientate verso
 la lettura di testo libero che verso un input formattato in campi fissi. Uno
 spazio in \param{format} corrisponde con un numero qualunque di caratteri di
-separazione (che possono essere spazi, tabulatori, virgole etc.), mentre
+separazione (che possono essere spazi, tabulatori, virgole ecc.), mentre
 caratteri diversi richiedono una corrispondenza esatta. Le direttive di
 conversione sono analoghe a quelle di \func{printf} e si trovano descritte in
 dettaglio nelle pagine di manuale e nel manuale delle \acr{glibc}.