conversión obsoleta de una constante de cadena a ‘char*' [Solucionado]

Hola,
Hasta hace poco he estado trabajando con una versión antigua de ubuntu, compilaba sin problemas pero la semana pasada actualicé y ahora no puedo compilar cierto software. Uno de los errores que me da es: "aviso: conversión obsoleta de una constante de cadena a ‘char*’"
La línea de compilación que utilizo es: "g++ -lpthread -o ../bin/gestor ../src/gestor.cc "
Y la línea que me da error es: "Open_Port("/dev/ttyS1");"
Siendo la función Open_Port la siguiente:
HANDLE Open_Port(char COMx[])
{
int fd; // File descriptor for the port

fd = open(COMx, O_RDWR | O_NOCTTY );//| O_NDELAY);

if (fd <0)
{
printf("open_port:fd=%d: No se puede abrir %s\n",fd,COMx);
return INVALID_HANDLE_VALUE;
}
printf("open_port:fd=%d: Abierto puerto %s\n",fd,COMx);
tcflush(fd, TCIOFLUSH);
return (fd);
}

¿Qué he de hacer?
Saludos

Seguramente tengas por algún lado algo del tipo

char* variable = "texto";

La solución pasa por usar la función strcpy:

strcpy(variable, "texto");

Para más información sobre strcpy, ejecutá man 3 strcpy
Un saludo.

El error te lo da en la llamada:
Open_Port("/dev/ttyS1")

tienes que hacerla así:

#define BUFF 64
[...]

char var[BUFF] = "/dev/ttyS1"
Open_Port(var);

Haciendo lo que me sugeris ya no da el aviso, mi duda es, ¿por qué con antes de actualizar podia compilar sin problemas el código? ¿Qué ha cambiado?
Saludos y muchas gracias

No te puedo decir el motivo real, pero me puedo imaginar que quizás pueda ser por seguridad ante un agujero de seguridad, ya que estas asignando una constante de cadena a una variable dinámica(esto es pura divagación) es decir el compilador trata "lo que sea" como una constante de cadena y el tipo de char * es un tipo de datos distinto a una constante de cadena, es decir "lo que sea" es una constante de cadena y char * no lo es aunque puede contenerlo ya que es un puntero de tipo char.

Creo que lo que ha cambiado en si es tan solo la configuración de la sintaxis que ahora es mas estricta pero lo puedes cambiar a como funcionaba antes.

Cuando compilabas en la version anterior... no te tiraba un warning al hacer eso?

roma escribió:

Cuando compilabas en la version anterior... no te tiraba un warning al hacer eso?

No

Seguramente si hubieras compilado con -Wall si. El problema viene porque si intentas modificar la cadena dentro de la función te dará violación de segmento. Al pasarle "texto" se toma como una cadena constante (no modificable) y en la función teniendo un cadena (vector de carácteres) como argumento si podrías modificar, por ejemplo, el valor de una posición.