Così come la hai scritta ci vorrebbe una malloc, ma va bè ci rinuncio...
Comunque non c'è problema perché l'implementazione di sigaction si salverà internamente x->sa_handler e a quel punto l'utente può anche fare quello che vuole della struttura, come riutilizzarla per una diversa chiamata a sigaction.

P.S.: Il fatto che abbia usato due funzioni differenti credo sia solo per esplicitare meglio la cosa, o permettere una successiva modifica in modo più agevole.