Recibo una advertencia: la función devuelve la dirección de la variable local en c

Tengo una lista de doble enlace que almacena alguna información. Cuando bash devolver uno de los valores dentro de la lista de enlaces, aparece la advertencia: la función devuelve la dirección de la variable local

Esta es mi statement de retorno:

return curr_val->value; 

El valor es de tipo const void* .

La firma del método es como: void *get_val(int key)

curr_val es de un tipo de estructura. Es igual a uno de mis nodos en la lista enlazada.

¿Cómo devuelvo el valor y no desaparece después de volver? Por cierto, no puedo cambiar la firma del método.

El problema es probable que haya asignado la dirección de una variable asignada a la stack al value . malloc usar new o malloc para obtener memoria para las variables que pretende que continúen existiendo más allá del marco de stack actual.