Sono curioso di compilare con gcc / g ++ / clang con il presupposto che
le intestazioni e i file di implementazione sono forniti dall'utente, ma non la configurazione di build.
(cioè, non cd lib && make
)
E se l'utente potesse fornire anche file oggetto da collegare (librerie statiche)? Che ne dici di compilatori / linker forniti dall'utente forniti nel mix?
Un utente malintenzionato potrebbe portare un sistema inattivo (risorse di esaurimento) o potrebbe anche eseguire codice arbitrario in questo modo se tutto ciò che potrebbero fare è inviare *.cc
, *.hh
e *.a
file, eventualmente flag del compilatore, e far compilare il sistema e collegarlo tutti insieme (ma non eseguirlo)?