Lines Matching refs:di
14 In un mondo perfetto, sarebbe possibile prendere tutti gli usi di
16 possibile rimuovere la vecchia interfaccia in un singolo ciclo di sviluppo.
18 le tempistiche, non è sempre possibile fare questo tipo di conversione tutta
19 in una volta. Questo significa che nuove istanze di una vecchia interfaccia
20 potrebbero aggiungersi al kernel proprio quando si sta cercando di rimuoverle,
21 aumentando così il carico di lavoro. Al fine di istruire gli sviluppatori su
30 perché uno degli obiettivi del kernel è quello di compilare senza avvisi;
32 di `__deprecated` in un file d'intestazione sia opportuno per segnare una
45 sono stati ripristinati?). Molto spesso l'uso di BUG()
47 impossibile un'attività di debug o anche solo leggere un rapporto
54 Tenete presente che la famiglia di funzioni WARN() dovrebbe essere
56 volete avvisare gli utenti riguardo a qualcosa di possibile anche se
59 *panic_on_warn* per essere sicuri che il sistema smetta di funzionare
64 Calcoli codificati negli argomenti di un allocatore
67 dovrebbero essere fatto negli argomenti di funzioni di allocazione di memoria
68 (o simili) per via del rischio di overflow. Questo può portare a valori più
69 piccoli di quelli che il chiamante si aspettava. L'uso di questo modo di
70 allocare può portare ad un overflow della memoria di heap e altri
73 i valori numerici come suggerito di seguito è innocuo).
83 Se questo tipo di allocatore non è disponibile, allora dovrebbero essere usate
88 Un altro tipico caso da evitare è quello di calcolare la dimensione di una
89 struttura seguita da un vettore di altre strutture, come nel seguente caso::
99 array3_size(), e struct_size(), così come la famiglia di
110 terminata con il carattere NUL o quello di nuova riga.
115 di destinazione. Questo può portare ad un overflow oltre i limiti del
116 buffer e generare svariati tipi di malfunzionamenti. Nonostante l'opzione
123 L'utilizzo di strncpy() non fornisce alcuna garanzia sul fatto che
124 il buffer di destinazione verrà terminato con il carattere NUL. Questo
125 potrebbe portare a diversi overflow di lettura o altri malfunzionamenti
127 terminazione nel buffer di destinazione quando la stringa d'origine è più
130 strscpy(). (chi usa strscpy() e necessita di estendere la
134 può continuare ad essere usata, ma i buffer di destinazione devono essere
140 La funzione strlcpy(), per prima cosa, legge interamente il buffer di
141 origine, magari leggendo più di quanto verrà effettivamente copiato. Questo
142 è inefficiente e può portare a overflow di lettura quando la stringa non è
145 Segnaposto %p nella stringa di formato
148 Tradizionalmente, l'uso del segnaposto "%p" nella stringa di formato
149 esponne un indirizzo di memoria in dmesg, proc, sysfs, eccetera. Per
151 tutto gli usi di "%p" nel kernel rappresentano l'hash dell'indirizzo,
152 rendendolo di fatto inutilizzabile. Nuovi usi di "%p" non dovrebbero
153 essere aggiunti al kernel. Per una rappresentazione testuale di un
159 di Linus:
161 - Se il valore hash di "%p" è inutile, chiediti se il puntatore stesso
164 perché alcuni stati del sistema o i livelli di privilegi di un
165 utente sono considerati "special"? Se pensi di poterlo giustificare
167 affrontare il giudizio di Linus, allora forse potrai usare "%px",
168 assicurandosi anche di averne il permesso.
170 Infine, sappi che un cambio in favore di "%p" con hash `non verrà
178 vettori a dimensione fissa. Questi `problemi di prestazioni <https://git.kernel.org/linus/02361bc77…
180 aggiunta sono anche un problema per la sicurezza. La crescita dinamica di un
184 `CONFIG_THREAD_INFO_IN_TASK=y`), o sovrascrivere un pezzo di memoria adiacente
190 Il linguaggio C permette ai casi di un'istruzione `switch` di saltare al
194 osservando il seguente pezzo di codice non è chiaro se lo stato
207 Dato che c'è stata una lunga lista di problemi `dovuti alla mancanza dell'istruzione
211 parola chiave 'fallthrough' che viene espansa nell'estensione di gcc
219 compilatori, analizzatori statici, e ambienti di sviluppo IDE,