Re: gets() en Lenguaje C.

2002-01-15 Por tema Gunnar Wolf
> > Bueno, pues eso. Me ha quedado lo de comentar que la opción "a+" del > > fopen es pelin peligrosa, si no se verifica que el fichero a abrir no es > > un enlace simbólico a, por ejemplo a /etc/passwd ( si lo ejecuta como > > root puede ser divertido... ) > > Para nada. Este fallito si es de bult

Re: gets() en Lenguaje C.

2002-01-15 Por tema Carles Pina i Estany
Hola, > > tambien era en el caso que el programa "nuestro" se ejecuto con setuid de > > root > > > > Hay varios exploits que se aprovechan de eso, de no comprobar si el > > fichero que el programa intenta abrir es un enlace simbólico o no existe > > > > Imagina que nuestro programa se ejecuta co

Re: gets() en Lenguaje C.

2002-01-15 Por tema Antonio Castro
On Tue, 15 Jan 2002, Carles Pina i Estany wrote: > Hola, > > > > Bueno, pues eso. Me ha quedado lo de comentar que la opción "a+" del > > > fopen es pelin peligrosa, si no se verifica que el fichero a abrir no es > > > un enlace simbólico a, por ejemplo a /etc/passwd ( si lo ejecuta como > > > ro

Re: gets() en Lenguaje C.

2002-01-15 Por tema Carles Pina i Estany
Hola, > > > En el man de system() lo único que veo sobre esto es: > > > > > Yo creo que cuando system llama a un programa normal sin privilegios > > > > no, no es cuando llama a un programa normal > > Quiero decir sin setuid ni setgid. hombre, entonces claro, todo va con los permisos de quien l

Re: gets() en Lenguaje C.

2002-01-15 Por tema Carles Pina i Estany
Hola, > > Bueno, pues eso. Me ha quedado lo de comentar que la opción "a+" del > > fopen es pelin peligrosa, si no se verifica que el fichero a abrir no es > > un enlace simbólico a, por ejemplo a /etc/passwd ( si lo ejecuta como > > root puede ser divertido... ) > > Para nada. Este fallito si es

Re: gets() en Lenguaje C.

2002-01-15 Por tema Bernardo Arlandis Mañó
Antes de que llegue la respuesta de Carles que está al caer, decir que para ser offtopic se está estirando bastante esta discusión. No os exciteis... -- Antonio Castro wrote: On 15 Jan 2002, Juan Antonio Martinez wrote: Bueno, pues eso. Me ha quedado lo de comentar que la opción "a+" del fo

Re: gets() en Lenguaje C.

2002-01-15 Por tema Antonio Castro
On Tue, 15 Jan 2002, Carles Pina i Estany wrote: > > > Hola, > > > > par de errores gordos de concepto en cuanto a seguridad ( el usar > > > system() sin ajustar el entorno, por ejemplo ), pero por lo menos hace > > > > Eso no lo entiendo. A que te refieres con ajustar el entorno ? > > > > En

Re: gets() en Lenguaje C.

2002-01-15 Por tema Antonio Castro
On 15 Jan 2002, Juan Antonio Martinez wrote: > Bueno, pues eso. Me ha quedado lo de comentar que la opción "a+" del > fopen es pelin peligrosa, si no se verifica que el fichero a abrir no es > un enlace simbólico a, por ejemplo a /etc/passwd ( si lo ejecuta como > root puede ser divertido... ) Pa

Re: gets() en Lenguaje C.

2002-01-15 Por tema Carles Pina i Estany
Hola, > > quizás me equivoco, pero creo que el estándard ANSI C define qué tiene que > > hacer fflush(xxx) cuando xxx es un flujo de salida, no de entrada > > > > En sistemas como Solaris o HP-UX que son los que tengo más a mano el > > fflush(stdin) elimina todo lo que haya quedado en stdin, en c

Re: gets() en Lenguaje C.

2002-01-15 Por tema Carles Pina i Estany
Hola, > > par de errores gordos de concepto en cuanto a seguridad ( el usar > > system() sin ajustar el entorno, por ejemplo ), pero por lo menos hace > > Eso no lo entiendo. A que te refieres con ajustar el entorno ? > > En el man de system() lo único que veo sobre esto es: > Yo creo que cuan

Re: gets() en Lenguaje C.

2002-01-15 Por tema Carles Pina i Estany
Hola, > > > if (fgets(buffer,sizeof(buffer),stdin) ) { > > > if ( buffer[strlen(buffer)-1] == '\n' ) > > > buffer[strlen(buffer)-1]='\0'; > > > fflush(stdin); > > > > estás seguro del fflush(stdin) ? > > No hay diferencia entre entrada y salida, porque eso es > subjetivo. Juan A

Re: gets() en Lenguaje C.

2002-01-15 Por tema Antonio Castro
On 15 Jan 2002, Juan Antonio Martinez wrote: > par de errores gordos de concepto en cuanto a seguridad ( el usar > system() sin ajustar el entorno, por ejemplo ), pero por lo menos hace Eso no lo entiendo. A que te refieres con ajustar el entorno ? En el man de system() lo único que veo sobre e

Re: gets() en Lenguaje C.

2002-01-15 Por tema Juan Antonio Martinez
El mar, 15-01-2002 a las 11:38, Carles Pina i Estany escribió: > > quizás me equivoco, pero creo que el estándard ANSI C define qué tiene que > hacer fflush(xxx) cuando xxx es un flujo de salida, no de entrada > > En sistemas como Solaris o HP-UX que son los que tengo más a mano el > fflush(stdi

Re: gets() en Lenguaje C.

2002-01-15 Por tema Ternary Digit
On Tue, 15 Jan 2002 11:38:41 +0100 (CET) Carles Pina i Estany <[EMAIL PROTECTED]> wrote: > On 15 Jan 2002, Juan Antonio Martinez wrote: > > > El substituto correcto de gets(buffer) es: > > > > if (fgets(buffer,sizeof(buffer),stdin) ) { > > if ( buffer[strlen(buffer)-1] == '\n' ) > >

Re: gets() en Lenguaje C.

2002-01-15 Por tema Carles Pina i Estany
Hola, On 15 Jan 2002, Juan Antonio Martinez wrote: > El substituto correcto de gets(buffer) es: > > if (fgets(buffer,sizeof(buffer),stdin) ) { > if ( buffer[strlen(buffer)-1] == '\n' ) > buffer[strlen(buffer)-1]='\0'; > fflush(stdin); estás seguro del fflush(s

Re: gets() en Lenguaje C.

2002-01-15 Por tema Juan Antonio Martinez
El sáb, 12-01-2002 a las 20:17, Jose Luis Alarcon escribió: > Por favor, si hay por aqui alguien que > conozca el C, le pido encarecidamente que > eche un vistazo al programa que adjunto (es > muy cortito) y averigue por que diablos > falla la orden gets(). Amoaver...he estado siguiendo el threa

RE: gets() en Lenguaje C.

2002-01-15 Por tema Javier Juez Santamaría
El Jan 15, Carles Pina i Estany escribió: > > Hola, > > > Si no recuerdo mal, "%s" hace que scanf coja cadenas separadas por > > espacios. Para hacerlo cogiendo una línea: > > > > scanf( "%[^n]" , buffer ) ; getchar(); > > pero eso tambien es tan peligroso como gets a palo seco, no? (sc

RE: gets() en Lenguaje C.

2002-01-14 Por tema Carles Pina i Estany
Hola, > Si no recuerdo mal, "%s" hace que scanf coja cadenas separadas por > espacios. Para hacerlo cogiendo una línea: > > scanf( "%[^n]" , buffer ) ; getchar(); pero eso tambien es tan peligroso como gets a palo seco, no? (scanf no creo que compruebe el tamaño máximo de buffer para

RE: gets() en Lenguaje C.

2002-01-14 Por tema Javier Juez Santamaría
El Jan 14, Drizzt Do'Urden escribió: > > > >scanf("%s", &respuesta) -> Lee hasta que encuentres un final de línea > >scanf("%s%*c", &respuesta) -> Lee hasta que encuentres un final de línea y > > > Si, pero dudo que eso coja algo asi: > > cadena Si no recuerdo mal, "%s" hace que sca

RE: gets() en Lenguaje C.

2002-01-14 Por tema Drizzt Do'Urden
>scanf("%s", &respuesta) -> Lee hasta que encuentres un final de línea >scanf("%s%*c", &respuesta) -> Lee hasta que encuentres un final de línea y Si, pero dudo que eso coja algo asi: cadena Saludos Drizzt

Re: gets() en Lenguaje C.

2002-01-14 Por tema Angel
Hola. Al utilizar scanf ten en cuenta lo que lees y lo que dejas. scanf("%s", &respuesta) -> Lee hasta que encuentres un final de línea scanf("%s%*c", &respuesta) -> Lee hasta que encuentres un final de línea y luego desprecia un carácter. Por cierto, esto está en "man scanf", es lo primero

Re: gets() en Lenguaje C.

2002-01-13 Por tema Sergio Dominguez
No te sale al compilar el mensaje ese de... Warning : The gets () function is dangerous and should not be used Hay que usarla com cuidado, mejor usa scanf, te permite mas control sobre lo que haces. Saludos Sergio A las 11:17 del 12 de Jan de 2002, Jose Luis Alarcon dijo: > Por favor, si ha

Re: gets() en Lenguaje C.

2002-01-12 Por tema PJ Pérez
El ds, 12-01-2002 a las 20:17, Jose Luis Alarcon escribió: > Por favor, si hay por aqui alguien que > conozca el C, le pido encarecidamente que > eche un vistazo al programa que adjunto (es > muy cortito) y averigue por que diablos > falla la orden gets(). > > Os juro que me estoy volviendo lo