Cos'è signal-safe?
Definizione di funzione async-signal safe(Da: BB. Definizioni - Secure Coding - CERT Secure Coding Standards)
Una funzione è asincrona-safe, o asincrona-signal safe, se può essere chiamata in modo sicuro e senza effetti collaterali dall'interno di un contesto gestore di segnali. Cioè, deve poter essere interrotta in qualsiasi punto per essere eseguita linearmente fuori sequenza senza causare uno stato incoerente. Deve anche funzionare correttamente quando i dati globali potrebbero essere essi stessi in uno stato incoerente. Alcune operazioni asincrone sicure sono elencate qui:
- Chiamare la funzione signal() per reinstallare un gestore di segnali
- Modificare incondizionatamente una variabile volatile sig_atomic_t (poiché la modifica a questo tipo è atomica)
- Chiamare la funzione _Exit() per terminare immediatamente l'esecuzione del programma
- Invocare una funzione asincrona-safe, come specificato dall'implementazione
Poche funzioni sono portabilmente asincrone-safe.
Nota: Leggete cosa significa "effetti collaterali" seguendo il link
Da questo credo che questa funzione detenga la chiave per le funzioni async-signal safe
- Funzione rientrante senza usare primitive di sincronizzazione (Nota: rientrante per thread safe e rientrante per gestori di segnali sono diversi. Capisco che re-entrant non ha nulla a che fare con la funzione async-signal-safe, ma sembra che sia un elemento di base per essa)
- Per bloccare la generazione del segnale al momento giusto (leggi al momento sensibile/critico). Non vogliamo che i nostri gestori di segnali generino segnali e diano un comportamento indefinito.
Idealmente questa funzione dovrebbe fare il meno possibile e fino a un certo punto impostare/riimpostare i flag per i vostri bisogni speciali (cioè cambiare il flusso/uscita del programma)
Si prega di fare riferimento al link/fonte:
http://stackoverflow.com/questions/8493095/what-constitutes-asynchronous-safeness
Gestori di segnali e sicurezza asincrona
Tutto sui segnali Linux (Sezione: funzioni Signal-Safe)
Articoli simili
- Cos'è l'app Signal? È meglio passare all'app Signal da WhatsApp?
- Cos'è un file .dex? Cos'è dexopt? Che cos'è odex? Cos'è dexoat? Cos'è ELF? Come funziona tutto questo?
- Quale app di messaggistica mobile criptata è più sicura: Telegram o Signal di Open Whisper Systems?
- Qual è l'app di messaggistica più sicura, Signal o Wire Messenger?
- L'app Signal messenger è una buona alternativa a WhatsApp? Perché?