Pablo Jorge | 19 Jan 2010 20:48
Picon

Re: [cppba] a ver los córes!

Una especie de "while(1);" rebuscado? ;)

2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
int main(void)
{
int array[40];
int i;

for (i=0; i<=40; ++i)
array[i] = -1;

return 0;
}


qué onda? (Dato: x86).

NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.

Al que lo saca le paso un video buenísimo del pato donald.

--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts - Bertrand Rusell
--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Daniel Gutson | 19 Jan 2010 20:50
Picon

Re: [cppba] a ver los córes!

A VER ESTA ULTIMA, explicálo Jorge?

2010/1/19 Pablo Jorge <phj.arg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Una especie de "while(1);" rebuscado? ;)

2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
int main(void)
{
int array[40];
int i;

for (i=0; i<=40; ++i)
array[i] = -1;

return 0;
}


qué onda? (Dato: x86).

NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.

Al que lo saca le paso un video buenísimo del pato donald.

--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts - Bertrand Rusell

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"
Daniel Gutson | 19 Jan 2010 20:51
Picon

Re: [cppba] a ver los córes!

(Pablo, después me quejo cuando me dicen Gustavo)

2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
A VER ESTA ULTIMA, explicálo Jorge?

2010/1/19 Pablo Jorge <phj.arg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Una especie de "while(1);" rebuscado? ;)

int main(void)
{
int array[40];
int i;

for (i=0; i<=40; ++i)
array[i] = -1;

return 0;
}


qué onda? (Dato: x86).

NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.

Al que lo saca le paso un video buenísimo del pato donald.

--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts - Bertrand Rusell

--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"
Picon

Re: [cppba] a ver los córes!

Subí alguno más jodido, Dani. :P

2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
(Pablo, después me quejo cuando me dicen Gustavo)


2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
A VER ESTA ULTIMA, explicálo Jorge?

2010/1/19 Pablo Jorge <phj.arg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Una especie de "while(1);" rebuscado? ;)

int main(void)
{
int array[40];
int i;

for (i=0; i<=40; ++i)
array[i] = -1;

return 0;
}


qué onda? (Dato: x86).

NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.

Al que lo saca le paso un video buenísimo del pato donald.

--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts - Bertrand Rusell

--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"

--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Daniel Gutson | 19 Jan 2010 21:53
Picon

Re: [cppba] a ver los córes!

OK, contestále a Juanma :)

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subí alguno más jodido, Dani. :P


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
(Pablo, después me quejo cuando me dicen Gustavo)


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
A VER ESTA ULTIMA, explicálo Jorge?

2010/1/19 Pablo Jorge <phj.arg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Una especie de "while(1);" rebuscado? ;)

int main(void)
{
int array[40];
int i;

for (i=0; i<=40; ++i)
array[i] = -1;

return 0;
}


qué onda? (Dato: x86).

NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.

Al que lo saca le paso un video buenísimo del pato donald.

--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts - Bertrand Rusell

--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"
Picon

Re: [cppba] a ver los córes!

Si son char va a pisar con el FF en algún lugar del contador (nunca me acuerdo si es big endian, o little endian). Si pisa la parte inicial del entero, va a quedar algo así como FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito elegante, pero más largo. Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y sigue incrementando hasta que da overflow.

2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
OK, contestále a Juanma :)

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Subí alguno más jodido, Dani. :P


2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
(Pablo, después me quejo cuando me dicen Gustavo)


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
A VER ESTA ULTIMA, explicálo Jorge?

2010/1/19 Pablo Jorge <phj.arg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Una especie de "while(1);" rebuscado? ;)

int main(void)
{
int array[40];
int i;

for (i=0; i<=40; ++i)
array[i] = -1;

return 0;
}


qué onda? (Dato: x86).

NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.

Al que lo saca le paso un video buenísimo del pato donald.

--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts - Bertrand Rusell

--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"

--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Daniel Gutson | 19 Jan 2010 22:14
Picon

Re: [cppba] a ver los córes!

mentira.

(la 2nda parte)

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Si son char va a pisar con el FF en algún lugar del contador (nunca me acuerdo si es big endian, o little endian). Si pisa la parte inicial del entero, va a quedar algo así como FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito elegante, pero más largo. Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y sigue incrementando hasta que da overflow.


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
OK, contestále a Juanma :)

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Subí alguno más jodido, Dani. :P


2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
(Pablo, después me quejo cuando me dicen Gustavo)


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
A VER ESTA ULTIMA, explicálo Jorge?

2010/1/19 Pablo Jorge <phj.arg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Una especie de "while(1);" rebuscado? ;)

int main(void)
{
int array[40];
int i;

for (i=0; i<=40; ++i)
array[i] = -1;

return 0;
}


qué onda? (Dato: x86).

NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.

Al que lo saca le paso un video buenísimo del pato donald.

--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts - Bertrand Rusell

--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"
Picon

Re: [cppba] a ver los córes!

¿Qué parte? Ah, aclaro que en lugar de FF000000 sería FF0000(39 en hexa)

2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
mentira.
(la 2nda parte)


2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder <at> gmail.com>
Si son char va a pisar con el FF en algún lugar del contador (nunca me acuerdo si es big endian, o little endian). Si pisa la parte inicial del entero, va a quedar algo así como FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito elegante, pero más largo. Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y sigue incrementando hasta que da overflow.


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
OK, contestále a Juanma :)

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Subí alguno más jodido, Dani. :P


2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
(Pablo, después me quejo cuando me dicen Gustavo)


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
A VER ESTA ULTIMA, explicálo Jorge?

2010/1/19 Pablo Jorge <phj.arg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Una especie de "while(1);" rebuscado? ;)

int main(void)
{
int array[40];
int i;

for (i=0; i<=40; ++i)
array[i] = -1;

return 0;
}


qué onda? (Dato: x86).

NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.

Al que lo saca le paso un video buenísimo del pato donald.

--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts - Bertrand Rusell

--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"

--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Marcelo Caro | 19 Jan 2010 22:23
Picon

Re: [cppba] a ver los córes!

Creo que también juega el echo de como se alinea el int después de 37 enteros, ya que el std me parece que no asegura contigüidad en este caso.

Ademas me parece: 

>FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito 
No estoy seguro ya que al acceder array[i] con i negativo es indefinido.

>Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y sigue incrementando hasta que da overflow.
En tal caso al ser mayor de 37 se detendria.

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
¿Qué parte? Ah, aclaro que en lugar de FF000000 sería FF0000(39 en hexa)


2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
mentira.
(la 2nda parte)


2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder <at> gmail.com>
Si son char va a pisar con el FF en algún lugar del contador (nunca me acuerdo si es big endian, o little endian). Si pisa la parte inicial del entero, va a quedar algo así como FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito elegante, pero más largo. Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y sigue incrementando hasta que da overflow.


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
OK, contestále a Juanma :)

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Subí alguno más jodido, Dani. :P


2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
(Pablo, después me quejo cuando me dicen Gustavo)


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
A VER ESTA ULTIMA, explicálo Jorge?

2010/1/19 Pablo Jorge <phj.arg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Una especie de "while(1);" rebuscado? ;)

int main(void)
{
int array[40];
int i;

for (i=0; i<=40; ++i)
array[i] = -1;

return 0;
}


qué onda? (Dato: x86).

NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.

Al que lo saca le paso un video buenísimo del pato donald.

--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts - Bertrand Rusell

--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
          Marcelo
--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Marcelo Caro | 19 Jan 2010 22:24
Picon

Re: [cppba] a ver los córes!

Errata ... Creo que también juega el echo de como se alinea el int después de 37 char ...

2010/1/19 Marcelo Caro <marcecaro-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Creo que también juega el echo de como se alinea el int después de 37 enteros, ya que el std me parece que no asegura contigüidad en este caso.

Ademas me parece: 

>FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito 
No estoy seguro ya que al acceder array[i] con i negativo es indefinido.

>Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y sigue incrementando hasta que da overflow.
En tal caso al ser mayor de 37 se detendria.

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
¿Qué parte? Ah, aclaro que en lugar de FF000000 sería FF0000(39 en hexa)


2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
mentira.
(la 2nda parte)


2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder <at> gmail.com>
Si son char va a pisar con el FF en algún lugar del contador (nunca me acuerdo si es big endian, o little endian). Si pisa la parte inicial del entero, va a quedar algo así como FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito elegante, pero más largo. Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y sigue incrementando hasta que da overflow.


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
OK, contestále a Juanma :)

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Subí alguno más jodido, Dani. :P


2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
(Pablo, después me quejo cuando me dicen Gustavo)


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
A VER ESTA ULTIMA, explicálo Jorge?

2010/1/19 Pablo Jorge <phj.arg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Una especie de "while(1);" rebuscado? ;)

int main(void)
{
int array[40];
int i;

for (i=0; i<=40; ++i)
array[i] = -1;

return 0;
}


qué onda? (Dato: x86).

NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.

Al que lo saca le paso un video buenísimo del pato donald.

--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts - Bertrand Rusell

--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
          Marcelo



--
          Marcelo
--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Juan Manuel Ollé | 19 Jan 2010 22:36
Picon

Re: [cppba] a ver los córes!

Asi es marce, obviamente no compile pero lo primero que me imagine que al array lo acomodaria de la siguiente manera
 
|_char_|_char_|_char_|_char_|
|_char_|
|_________int____________|
 
por eso el 37, porque el 40 quedaria alineado y escribiria sobre el int, la alineacion es por comodidad

con respecto a los indices, no estoy seguro que un indice negativo sea indefinido, vos decis que esto es indefinido?
 
int a[20];
int * pa = &a[10];
pa[-5] = 0;
 
es indefinido?
se me hace que es indefinido si pisa fuera del array y uno mas alla del fin
 

 
El 19 de enero de 2010 18:24, Marcelo Caro <marcecaro-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> escribió:
Errata ... Creo que también juega el echo de como se alinea el int después de 37 char ...

2010/1/19 Marcelo Caro <marcecaro-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Creo que también juega el echo de como se alinea el int después de 37 enteros, ya que el std me parece que no asegura contigüidad en este caso.

Ademas me parece: 

>FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito 
No estoy seguro ya que al acceder array[i] con i negativo es indefinido.

>Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y sigue incrementando hasta que da overflow.
En tal caso al ser mayor de 37 se detendria.

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder <at> gmail.com>
¿Qué parte? Ah, aclaro que en lugar de FF000000 sería FF0000(39 en hexa)


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
mentira.
(la 2nda parte)


2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Si son char va a pisar con el FF en algún lugar del contador (nunca me acuerdo si es big endian, o little endian). Si pisa la parte inicial del entero, va a quedar algo así como FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito elegante, pero más largo. Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y sigue incrementando hasta que da overflow.


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
OK, contestále a Juanma :)

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Subí alguno más jodido, Dani. :P


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
(Pablo, después me quejo cuando me dicen Gustavo)


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
A VER ESTA ULTIMA, explicálo Jorge?

2010/1/19 Pablo Jorge <phj.arg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Una especie de "while(1);" rebuscado? ;)

int main(void)
{
int array[40];
int i;

for (i=0; i<=40; ++i)
array[i] = -1;

return 0;
}


qué onda? (Dato: x86).

NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.

Al que lo saca le paso un video buenísimo del pato donald.

--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts - Bertrand Rusell

--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
          Marcelo



--
          Marcelo

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"

--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Fernando Cacciola | 20 Jan 2010 02:52
Picon
Gravatar

Re: [cppba] a ver los córes!

Hola Juan,

> int a[20];
> int * pa = &a[10];
> pa[-5] = 0;
>
> es indefinido?

Buen punto.

En este caso SI está definido perfectamente ya que pa[-5] es lo mismo
que *(pa-5), y (pa-5) apunta a un elemento existente dentro del array
a.

> se me hace que es indefinido si pisa fuera del array y uno mas alla del fin
>
Mas o menos.

array[justo_uno_despues] (o (array+justo_uno_despues), que s lo mismo)
SI está definido (aunque no se pueda acceder a ese elemento del array)

En cambio, array[totalmente_afuera] NO.

Saludos

-- 
Fernando Cacciola
SciSoft Consulting, Founder
http://www.scisoft-consulting.com
--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Picon

Re: [cppba] a ver los córes!

Es verdad. Pensaba que en algún momento traducía a un JE al que nunca llega porque se pasó, pero verifiqué que siempre usa JLE o JG, a menos que la condición sea "i != 40".

2010/1/19 Marcelo Caro <marcecaro-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Creo que también juega el echo de como se alinea el int después de 37 enteros, ya que el std me parece que no asegura contigüidad en este caso.

Ademas me parece: 

>FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito 
No estoy seguro ya que al acceder array[i] con i negativo es indefinido.

>Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y sigue incrementando hasta que da overflow.
En tal caso al ser mayor de 37 se detendria.

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
¿Qué parte? Ah, aclaro que en lugar de FF000000 sería FF0000(39 en hexa)


2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
mentira.
(la 2nda parte)


2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder <at> gmail.com>
Si son char va a pisar con el FF en algún lugar del contador (nunca me acuerdo si es big endian, o little endian). Si pisa la parte inicial del entero, va a quedar algo así como FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito elegante, pero más largo. Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y sigue incrementando hasta que da overflow.


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
OK, contestále a Juanma :)

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Subí alguno más jodido, Dani. :P


2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
(Pablo, después me quejo cuando me dicen Gustavo)


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
A VER ESTA ULTIMA, explicálo Jorge?

2010/1/19 Pablo Jorge <phj.arg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Una especie de "while(1);" rebuscado? ;)

int main(void)
{
int array[40];
int i;

for (i=0; i<=40; ++i)
array[i] = -1;

return 0;
}


qué onda? (Dato: x86).

NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.

Al que lo saca le paso un video buenísimo del pato donald.

--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts - Bertrand Rusell

--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
          Marcelo

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"

--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Daniel Gutson | 19 Jan 2010 23:26
Picon

Re: [cppba] a ver los córes!

tuviste q mirar el assembly??   :D


(no hacía falta, simplemente no cumple la condición y listo!)

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Es verdad. Pensaba que en algún momento traducía a un JE al que nunca llega porque se pasó, pero verifiqué que siempre usa JLE o JG, a menos que la condición sea "i != 40".

Creo que también juega el echo de como se alinea el int después de 37 enteros, ya que el std me parece que no asegura contigüidad en este caso.

Ademas me parece: 

>FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito 
No estoy seguro ya que al acceder array[i] con i negativo es indefinido.

>Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y sigue incrementando hasta que da overflow.
En tal caso al ser mayor de 37 se detendria.

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder <at> gmail.com>
¿Qué parte? Ah, aclaro que en lugar de FF000000 sería FF0000(39 en hexa)


2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
mentira.
(la 2nda parte)


2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder <at> gmail.com>
Si son char va a pisar con el FF en algún lugar del contador (nunca me acuerdo si es big endian, o little endian). Si pisa la parte inicial del entero, va a quedar algo así como FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito elegante, pero más largo. Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y sigue incrementando hasta que da overflow.


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
OK, contestále a Juanma :)

2010/1/19 Gervasio Andrés Calderón Fernández <gervicalder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Subí alguno más jodido, Dani. :P


2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
(Pablo, después me quejo cuando me dicen Gustavo)


2010/1/19 Daniel Gutson <danielgutson <at> gmail.com>
A VER ESTA ULTIMA, explicálo Jorge?

2010/1/19 Pablo Jorge <phj.arg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Una especie de "while(1);" rebuscado? ;)

int main(void)
{
int array[40];
int i;

for (i=0; i<=40; ++i)
array[i] = -1;

return 0;
}


qué onda? (Dato: x86).

NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.

Al que lo saca le paso un video buenísimo del pato donald.

--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts - Bertrand Rusell

--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
          Marcelo

--

¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"


--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"
Alfredo | 19 Jan 2010 23:53
Picon

[cppba] Re: a ver los córes!

Jeje es un clasico buffer overflow si vemos el array como un buffer.

Lo de si se pisa el primer o el ultimo byte depende de si estas en big
endian o little endian...
Y no solamente eso sino que tambien depende de la alineacion. De echo
en este caso en particular siempre va a pasar porque 40 da la
casualidad que es multiplo de 4 y de 8 a la vez :)

Lo interesante es que ese bug en particular, en las distribuciones
modernas de linux no deberia pasar mas, ya que se soluciona con un
flag de GCC...ya que estamos, alguien sabe el flag?

On Jan 19, 7:26 pm, Daniel Gutson <danielgut...@...> wrote:
> tuviste q mirar el assembly??   :D
>
> (no hacía falta, simplemente no cumple la condición y listo!)
>
> 2010/1/19 Gervasio Andrés Calderón Fernández <gervical...@...>
>
>
>
> > Es verdad. Pensaba que en algún momento traducía a un JE al que nunca llega
> > porque se pasó, pero verifiqué que siempre usa JLE o JG, a menos que la
> > condición sea "i != 40".
>
> > 2010/1/19 Marcelo Caro <marcec...@...>
>
> >> Creo que también juega el echo de como se alinea el int después de 37
> >> enteros, ya que el std me parece que no asegura contigüidad en este caso.
>
> >> Ademas me parece:
>
> >> >FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y
> >> llegar a 40 -> ciclo infinito
> >> No estoy seguro ya que al acceder array[i] con i negativo es indefinido.
>
> >> >Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y
> >> sigue incrementando hasta que da overflow.
> >> En tal caso al ser mayor de 37 se detendria.
>
> >> 2010/1/19 Gervasio Andrés Calderón Fernández <gervical... <at> gmail.com>
>
> >>> ¿Qué parte? Ah, aclaro que en lugar de FF000000 sería FF0000(39 en hexa)
>
> >>> 2010/1/19 Daniel Gutson <danielgut...@...>
>
> >>>> mentira.
> >>>> (la 2nda parte)
>
> >>>> 2010/1/19 Gervasio Andrés Calderón Fernández <gervical... <at> gmail.com>
>
> >>>>> Si son char va a pisar con el FF en algún lugar del contador (nunca me
> >>>>> acuerdo si es big endian, o little endian). Si pisa la parte inicial del
> >>>>> entero, va a quedar algo así como FF000000, que es negativo y lo va a
> >>>>> incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito
> >>>>> elegante, pero más largo. Si pisa la parte final, queda 000000FF y ahí es un
> >>>>> número mayor que 40 y sigue incrementando hasta que da overflow.
>
> >>>>> 2010/1/19 Daniel Gutson <danielgut...@...>
>
> >>>>>> OK, contestále a Juanma :)
>
> >>>>>> 2010/1/19 Gervasio Andrés Calderón Fernández <gervical... <at> gmail.com>
>
> >>>>>> Subí alguno más jodido, Dani. :P
>
> >>>>>>> 2010/1/19 Daniel Gutson <danielgut...@...>
>
> >>>>>>>> (Pablo, después me quejo cuando me dicen Gustavo)
>
> >>>>>>>> 2010/1/19 Daniel Gutson <danielgut...@...>
>
> >>>>>>>>> A VER ESTA ULTIMA, explicálo Jorge?
>
> >>>>>>>>> 2010/1/19 Pablo Jorge <phj....@...>
>
> >>>>>>>>>>  Una especie de "while(1);" rebuscado? ;)
>
> >>>>>>>>>> 2010/1/19 Daniel Gutson <danielgut...@...>
>
> >>>>>>>>>>> int main(void)
> >>>>>>>>>>> {
> >>>>>>>>>>> int array[40];
> >>>>>>>>>>> int i;
>
> >>>>>>>>>>> for (i=0; i<=40; ++i)
> >>>>>>>>>>>  array[i] = -1;
>
> >>>>>>>>>>> return 0;
> >>>>>>>>>>> }
>
> >>>>>>>>>>> qué onda? (Dato: x86).
>
> >>>>>>>>>>> NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.
>
> >>>>>>>>>>> Al que lo saca le paso un video buenísimo del pato donald.
>
> >>>>>>>>>>> --
> >>>>>>>>>>> Who’s got the sweetest disposition?
> >>>>>>>>>>> One guess, that’s who?
> >>>>>>>>>>> Who’d never, ever start an argument?
> >>>>>>>>>>> Who never shows a bit of temperament?
> >>>>>>>>>>> Who's never wrong but always right?
> >>>>>>>>>>> Who'd never dream of starting a fight?
> >>>>>>>>>>> Who get stuck with all the bad luck?
>
> >>>>>>>>>>> --
> >>>>>>>>>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>>>>>>>>> recibido este mesaje por error.
> >>>>>>>>>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>>>>>>>>> --
> >>>>>>>>>> The whole problem with the world is that fools and fanatics are
> >>>>>>>>>> always so certain of themselves, but wiser people so full of doubts -
> >>>>>>>>>> Bertrand Rusell
>
> >>>>>>>>>> --
>
> >>>>>>>>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>>>>>>>> recibido este mesaje por error.
> >>>>>>>>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>>>>>>>> --
> >>>>>>>>> Who’s got the sweetest disposition?
> >>>>>>>>> One guess, that’s who?
> >>>>>>>>> Who’d never, ever start an argument?
> >>>>>>>>> Who never shows a bit of temperament?
> >>>>>>>>> Who's never wrong but always right?
> >>>>>>>>> Who'd never dream of starting a fight?
> >>>>>>>>> Who get stuck with all the bad luck?
>
> >>>>>>>> --
> >>>>>>>> Who’s got the sweetest disposition?
> >>>>>>>> One guess, that’s who?
> >>>>>>>> Who’d never, ever start an argument?
> >>>>>>>> Who never shows a bit of temperament?
> >>>>>>>> Who's never wrong but always right?
> >>>>>>>> Who'd never dream of starting a fight?
> >>>>>>>> Who get stuck with all the bad luck?
>
> >>>>>>>> --
> >>>>>>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>>>>>> recibido este mesaje por error.
> >>>>>>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>>>>>> --
> >>>>>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>>>>> recibido este mesaje por error.
> >>>>>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>>>>> --
> >>>>>> Who’s got the sweetest disposition?
> >>>>>> One guess, that’s who?
> >>>>>> Who’d never, ever start an argument?
> >>>>>> Who never shows a bit of temperament?
> >>>>>> Who's never wrong but always right?
> >>>>>> Who'd never dream of starting a fight?
> >>>>>> Who get stuck with all the bad luck?
>
> >>>>>> --
> >>>>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>>>> recibido este mesaje por error.
> >>>>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>>>> --
> >>>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>>> recibido este mesaje por error.
> >>>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>>> --
> >>>> Who’s got the sweetest disposition?
> >>>> One guess, that’s who?
> >>>> Who’d never, ever start an argument?
> >>>> Who never shows a bit of temperament?
> >>>> Who's never wrong but always right?
> >>>> Who'd never dream of starting a fight?
> >>>> Who get stuck with all the bad luck?
>
> >>>> --
> >>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>> recibido este mesaje por error.
> >>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>> --
>
> >>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
> >>> este mesaje por error.
> >>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >> --
> >>           Marcelo
>
> >> --
>
> >> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
> >> este mesaje por error.
> >> En caso de duda visita "http://groups.google.com/group/cppba"
>
> > --
> > ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
> > este mesaje por error.
> > En caso de duda visita "http://groups.google.com/group/cppba"
>
> --
> Who’s got the sweetest disposition?
> One guess, that’s who?
> Who’d never, ever start an argument?
> Who never shows a bit of temperament?
> Who's never wrong but always right?
> Who'd never dream of starting a fight?
> Who get stuck with all the bad luck?
--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Daniel Gutson | 20 Jan 2010 02:24
Picon

Re: [cppba] Re: a ver los córes!

OK , vamos a empezar a aclarar un cacho :)


1) sí, dá un loop infinito, porque (como puse q es x86), la dirección en que crece el stack en esta arquitectura hace que la posición 41 del array (que no existe) es la del contador; por lo tanto, pone a i en -1 y no sale más. El tamaño del array fue elegido adrede. Además, es siempre múltiplo de 4 por ser enteros, osea sizeof(array) = 4 * X.

2) es cierto lo del alineamiento, pero bueno en este caso no aplica por estar SIEMPRE alineado por ser enteros. (no importa el tamaño del entero, al ser un array de enteros, el contador está inmediatamente después del array).

3) Si aún ignoráramos el hecho de que es para x86, y consideráramos endianness variables, ví respuestas un tanto... desprolijas :D porque.... EL ENDIANESS NO TIENE NADA QUE VER ACA!, ya que el tipo de dato de array[x] == tipo de dato de i. Así que si meto -1 en i, meto -1 en array[último] ! Con lo cual, .... SIEMPRE va a dar un loop infinito.

4) en cuanto a lo que dice Alfredo, NO: pasa igual. A lo que él se refiere es el ´stack guard´, ´stack protector´, y se llama -fstack-protector, pero lo que hace es verificar el paquete el borde de todo el stack (especialmente q no se pise el return address de la función (por cuestión de seguridad)), pero no poner un canario entre cada elemento del stack. Sino, tendría que acomodar las cosas como
array
canario
contador
canario
    cosa q no ocurre. Lo que sí hace es
array
contador
etc.
canario


   Daniel.

2010/1/19 Alfredo <ortegaalfredo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Jeje es un clasico buffer overflow si vemos el array como un buffer.

Lo de si se pisa el primer o el ultimo byte depende de si estas en big
endian o little endian...
Y no solamente eso sino que tambien depende de la alineacion. De echo
en este caso en particular siempre va a pasar porque 40 da la
casualidad que es multiplo de 4 y de 8 a la vez :)

Lo interesante es que ese bug en particular, en las distribuciones
modernas de linux no deberia pasar mas, ya que se soluciona con un
flag de GCC...ya que estamos, alguien sabe el flag?



On Jan 19, 7:26 pm, Daniel Gutson <danielgut...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> tuviste q mirar el assembly??   :D
>
> (no hacía falta, simplemente no cumple la condición y listo!)
>
> 2010/1/19 Gervasio Andrés Calderón Fernández <gervical...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
>
>
> > Es verdad. Pensaba que en algún momento traducía a un JE al que nunca llega
> > porque se pasó, pero verifiqué que siempre usa JLE o JG, a menos que la
> > condición sea "i != 40".
>
> > 2010/1/19 Marcelo Caro <marcec...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> >> Creo que también juega el echo de como se alinea el int después de 37
> >> enteros, ya que el std me parece que no asegura contigüidad en este caso.
>
> >> Ademas me parece:
>
> >> >FF000000, que es negativo y lo va a incrementar igual hasta pasar por 0 y
> >> llegar a 40 -> ciclo infinito
> >> No estoy seguro ya que al acceder array[i] con i negativo es indefinido.
>
> >> >Si pisa la parte final, queda 000000FF y ahí es un número mayor que 40 y
> >> sigue incrementando hasta que da overflow.
> >> En tal caso al ser mayor de 37 se detendria.
>
> >> 2010/1/19 Gervasio Andrés Calderón Fernández <gervical...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> >>> ¿Qué parte? Ah, aclaro que en lugar de FF000000 sería FF0000(39 en hexa)
>
> >>> 2010/1/19 Daniel Gutson <danielgut...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> >>>> mentira.
> >>>> (la 2nda parte)
>
> >>>> 2010/1/19 Gervasio Andrés Calderón Fernández <gervical...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> >>>>> Si son char va a pisar con el FF en algún lugar del contador (nunca me
> >>>>> acuerdo si es big endian, o little endian). Si pisa la parte inicial del
> >>>>> entero, va a quedar algo así como FF000000, que es negativo y lo va a
> >>>>> incrementar igual hasta pasar por 0 y llegar a 40 -> ciclo infinito
> >>>>> elegante, pero más largo. Si pisa la parte final, queda 000000FF y ahí es un
> >>>>> número mayor que 40 y sigue incrementando hasta que da overflow.
>
> >>>>> 2010/1/19 Daniel Gutson <danielgut...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> >>>>>> OK, contestále a Juanma :)
>
> >>>>>> 2010/1/19 Gervasio Andrés Calderón Fernández <gervical...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> >>>>>> Subí alguno más jodido, Dani. :P
>
> >>>>>>> 2010/1/19 Daniel Gutson <danielgut...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> >>>>>>>> (Pablo, después me quejo cuando me dicen Gustavo)
>
> >>>>>>>> 2010/1/19 Daniel Gutson <danielgut...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> >>>>>>>>> A VER ESTA ULTIMA, explicálo Jorge?
>
> >>>>>>>>> 2010/1/19 Pablo Jorge <phj....-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> >>>>>>>>>>  Una especie de "while(1);" rebuscado? ;)
>
> >>>>>>>>>> 2010/1/19 Daniel Gutson <danielgut...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> >>>>>>>>>>> int main(void)
> >>>>>>>>>>> {
> >>>>>>>>>>> int array[40];
> >>>>>>>>>>> int i;
>
> >>>>>>>>>>> for (i=0; i<=40; ++i)
> >>>>>>>>>>>  array[i] = -1;
>
> >>>>>>>>>>> return 0;
> >>>>>>>>>>> }
>
> >>>>>>>>>>> qué onda? (Dato: x86).
>
> >>>>>>>>>>> NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.
>
> >>>>>>>>>>> Al que lo saca le paso un video buenísimo del pato donald.
>
> >>>>>>>>>>> --
> >>>>>>>>>>> Who’s got the sweetest disposition?
> >>>>>>>>>>> One guess, that’s who?
> >>>>>>>>>>> Who’d never, ever start an argument?
> >>>>>>>>>>> Who never shows a bit of temperament?
> >>>>>>>>>>> Who's never wrong but always right?
> >>>>>>>>>>> Who'd never dream of starting a fight?
> >>>>>>>>>>> Who get stuck with all the bad luck?
>
> >>>>>>>>>>> --
> >>>>>>>>>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>>>>>>>>> recibido este mesaje por error.
> >>>>>>>>>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>>>>>>>>> --
> >>>>>>>>>> The whole problem with the world is that fools and fanatics are
> >>>>>>>>>> always so certain of themselves, but wiser people so full of doubts -
> >>>>>>>>>> Bertrand Rusell
>
> >>>>>>>>>> --
>
> >>>>>>>>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>>>>>>>> recibido este mesaje por error.
> >>>>>>>>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>>>>>>>> --
> >>>>>>>>> Who’s got the sweetest disposition?
> >>>>>>>>> One guess, that’s who?
> >>>>>>>>> Who’d never, ever start an argument?
> >>>>>>>>> Who never shows a bit of temperament?
> >>>>>>>>> Who's never wrong but always right?
> >>>>>>>>> Who'd never dream of starting a fight?
> >>>>>>>>> Who get stuck with all the bad luck?
>
> >>>>>>>> --
> >>>>>>>> Who’s got the sweetest disposition?
> >>>>>>>> One guess, that’s who?
> >>>>>>>> Who’d never, ever start an argument?
> >>>>>>>> Who never shows a bit of temperament?
> >>>>>>>> Who's never wrong but always right?
> >>>>>>>> Who'd never dream of starting a fight?
> >>>>>>>> Who get stuck with all the bad luck?
>
> >>>>>>>> --
> >>>>>>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>>>>>> recibido este mesaje por error.
> >>>>>>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>>>>>> --
> >>>>>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>>>>> recibido este mesaje por error.
> >>>>>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>>>>> --
> >>>>>> Who’s got the sweetest disposition?
> >>>>>> One guess, that’s who?
> >>>>>> Who’d never, ever start an argument?
> >>>>>> Who never shows a bit of temperament?
> >>>>>> Who's never wrong but always right?
> >>>>>> Who'd never dream of starting a fight?
> >>>>>> Who get stuck with all the bad luck?
>
> >>>>>> --
> >>>>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>>>> recibido este mesaje por error.
> >>>>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>>>> --
> >>>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>>> recibido este mesaje por error.
> >>>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>>> --
> >>>> Who’s got the sweetest disposition?
> >>>> One guess, that’s who?
> >>>> Who’d never, ever start an argument?
> >>>> Who never shows a bit of temperament?
> >>>> Who's never wrong but always right?
> >>>> Who'd never dream of starting a fight?
> >>>> Who get stuck with all the bad luck?
>
> >>>> --
> >>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
> >>>> recibido este mesaje por error.
> >>>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >>> --
>
> >>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
> >>> este mesaje por error.
> >>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> >> --
> >>           Marcelo
>
> >> --
>
> >> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
> >> este mesaje por error.
> >> En caso de duda visita "http://groups.google.com/group/cppba"
>
> > --
> > ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
> > este mesaje por error.
> > En caso de duda visita "http://groups.google.com/group/cppba"
>
> --
> Who’s got the sweetest disposition?
> One guess, that’s who?
> Who’d never, ever start an argument?
> Who never shows a bit of temperament?
> Who's never wrong but always right?
> Who'd never dream of starting a fight?
> Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"
Fernando Cacciola | 20 Jan 2010 02:32
Picon
Gravatar

Re: [cppba] Re: a ver los córes!

Howdy,

> Sino, tendría que
> acomodar las cosas como
> array
> canario
> contador
> canario
>     cosa q no ocurre. Lo que sí hace es
> array
> contador
> etc.
> canario
>

Para los nostálgicos, una una vez un Borland que venía con un producto
llamado CodeGuard que ponia canarios por todos lados.
Lo malo es que tenías que correr la aplicación e irte de vacaciones
para ver el log 30 dias despues, pero encontrabas hasta ESE tipo de
errores que son de los más sutiles.

Saludos

-- 
Fernando Cacciola
SciSoft Consulting, Founder
http://www.scisoft-consulting.com
--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
RFOG | 20 Jan 2010 09:23
Picon

Re: [cppba] Re: a ver los córes!

Sigue estando, sigue estando, pero ahora viene integrado en sus producto.

Si no fuera por los miles y miles de bugs que trae la VCL (su librería) y  
el compilador, no sería mal producto.

On Wed, 20 Jan 2010 02:32:25 +0100, Fernando Cacciola  
<fernando.cacciola@...> wrote:

> Howdy,
>
>> Sino, tendría que
>> acomodar las cosas como
>> array
>> canario
>> contador
>> canario
>>     cosa q no ocurre. Lo que sí hace es
>> array
>> contador
>> etc.
>> canario
>>
>
> Para los nostálgicos, una una vez un Borland que venía con un producto
> llamado CodeGuard que ponia canarios por todos lados.
> Lo malo es que tenías que correr la aplicación e irte de vacaciones
> para ver el log 30 dias despues, pero encontrabas hasta ESE tipo de
> errores que son de los más sutiles.
>
> Saludos
>

-- 
Microsoft Visual C++ MVP => http://geeks.ms/blogs/rfog
========================================
El que nada emprende, nada concluye.
		-- Chaucer.
--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Alfredo | 20 Jan 2010 02:51
Picon

[cppba] Re: a ver los córes!


On Jan 19, 10:24 pm, Daniel Gutson <danielgut...@...> wrote:
> OK , vamos a empezar a aclarar un cacho :)
>
> 1) sí, dá un loop infinito, porque (como puse q es x86), la dirección en que
> crece el stack en esta arquitectura hace que la posición 41 del array (que
> no existe) es la del contador; por lo tanto, pone a i en -1 y no sale más.
> El tamaño del array fue elegido adrede. Además, es siempre múltiplo de 4 por
> ser enteros, osea sizeof(array) = 4 * X.
>
> 2) es cierto lo del alineamiento, pero bueno en este caso no aplica por
> estar SIEMPRE alineado por ser enteros. (no importa el tamaño del entero, al
> ser un array de enteros, el contador está inmediatamente después del array).
>
> 3) Si aún ignoráramos el hecho de que es para x86, y consideráramos
> endianness variables, ví respuestas un tanto... desprolijas :D porque.... EL
> ENDIANESS NO TIENE NADA QUE VER ACA!, ya que el tipo de dato de array[x] ==
> tipo de dato de i. Así que si meto -1 en i, meto -1 en array[último] ! Con
> lo cual, .... SIEMPRE va a dar un loop infinito.

Si tenes razon, yo me referia al caso del Char...

> 4) en cuanto a lo que dice Alfredo, NO: pasa igual. A lo que él se refiere
> es el ´stack guard´, ´stack protector´, y se llama -fstack-protector, pero
> lo que hace es verificar el paquete el borde de todo el stack (especialmente
> q no se pise el return address de la función (por cuestión de seguridad)),
> pero no poner un canario entre cada elemento del stack. Sino, tendría que
> acomodar las cosas como
> array
> canario
> contador
> canario
>     cosa q no ocurre. Lo que sí hace es
> array
> contador
> etc.
> canario
>
>    Daniel.
>

Si! era ese flag.
Yo me referia al buffer reordering, que teoricamente un stack asi:
(Stack crece para arriba y el overflow va para abajo)

array
contador
return address
Parametros
etc.

-fstack-protector se da cuenta que hay un buffer y lo pone asi:

contador
array
canario (numero random en linux nuevos)
return address
Parametros
etc.

Entonces reordenando el stack pone los arrays adelante del canario,
entonces el overflow del array solamente pisa el canario y no el
contador.
De esta manera se detecta el overflow.
Ahora, esto creo que funcionaba para buffers de caracteres, lo voy a
probar a ver si anda con buffers de enteros...si no anda es que eso
todavia no lo habilitaron para todo tipo de buffers.
Justo ahora no encuentro el PPT que explicaba esto todo bonito pero
"stack protector buffer reordering" tiene que dar algunos resultados
en google...
--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Daniel Gutson | 20 Jan 2010 06:39
Picon

Re: [cppba] Re: a ver los córes!

[a todos, por favor reconózcanme que....

2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
3) Si aún ignoráramos el hecho de que es para x86, y consideráramos endianness variables, ví respuestas un tanto... desprolijas

evidencia que estoy siendo mucho más... (adjetivos, a mí...) delicado que de costumbre no? debe ser por contexto, estoy humilde en estos días por estar con la compañía que estoy..... con gente que está en gcc desde 1987 y tengo el honor de q sean compañeros de laburo... están desde gcc 1.x, y me cuentan la historia desde primera persona :D ]


OK, pueden releer mi texto original como "respuestas q son CUALQUIERA!"  :)

(una masa esta gente, me contó la historia de sourceware, la historia de binutils, cygnus, redhat, y todo lo q hace al open source [*] que conocemos hoy en día).


[*] adrede digo open source y no software libre.

pd: no responder a este mensaje en este thread para no hacer kilombo. Además no voy a decir mucho, sólo q voy a hacer lo posible para traer a este señor que es muy muy pero muy humilde (posta) a Argentina para q venga a dar una charla (el problema es que no le gustan las multitudes :(   ). Él solo casi hizo el port de Itanium, las primeras optimizaciones, entre millones de cosas. Si logro algo concreto voy a escribir un mail aparte.

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"
Alfredo | 20 Jan 2010 09:19
Picon

[cppba] Re: a ver los córes!

Bueno acabo de correr algunas pruebas en el ultimo Ubuntu y los
resultados ameritan un post mas:

Paso de todo menos lo que habia pensado.
Primeramente en x86_64 bits no llega jamas al loop infinito, por la
alineacion. Yo creia que no iba a pasar porque aun alineados estan
pegados porque son multiplos, pero no es asi, ambas variables estan
separadas por 8 bytes (?) bastante espacio para que salga sin
problemas. Meti las dos variables en un struct, ahi si alinearon bien
y pasaba el bug.

Despues en i386 gcc hace varias cosas, desde directamente optimizar
todo el loop y salir a no ser que pongamos -O0, o meter la variable i
en un registro y directamente pisar la direccion de retorno en el
overflow porque se elimina totalmente de stack. Con -O0 se reproduce
el bug.

Me equivoque tambien en el nombre, este bug se llama mas
apropiadamente off-by-one y no overflow.

PD:  -fstack-protector y -fstack-protector-all ignoran olimpicamente
este buffer, no reordenaron nada! me mintieron! :P

On Jan 20, 2:39 am, Daniel Gutson <danielgut...@...> wrote:
> [a todos, por favor reconózcanme que....
>
> 2010/1/19 Daniel Gutson <danielgut...@...>
>
> > 3) Si aún ignoráramos el hecho de que es para x86, y consideráramos
> > endianness variables, ví respuestas un tanto... *desprolijas *
>
> evidencia que estoy siendo mucho más... (adjetivos, a mí...) *delicado* que
> de costumbre no? debe ser por contexto, estoy humilde en estos días por
> estar con la compañía que estoy..... con gente que está en gcc desde 1987 y
> tengo el honor de q sean compañeros de laburo... están desde gcc 1.x, y me
> cuentan la historia desde primera persona :D ]
>
> OK, pueden releer mi texto original como "respuestas q son CUALQUIERA!"  :)
>
> (una masa esta gente, me contó la historia de sourceware, la historia de
> binutils, cygnus, redhat, y todo lo q hace al open source [*] que conocemos
> hoy en día).
>
> [*] adrede digo open source y no software libre.
>
> pd: no responder a este mensaje en este thread para no hacer kilombo. Además
> no voy a decir mucho, sólo q voy a hacer lo posible para traer a este señor
> que es muy muy pero muy humilde (posta) a Argentina para q venga a dar una
> charla (el problema es que no le gustan las multitudes :(   ). Él solo casi
> hizo el port de Itanium, las primeras optimizaciones, entre millones de
> cosas. Si logro algo concreto voy a escribir un mail aparte.
--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Fernando Cacciola | 20 Jan 2010 02:39
Picon
Gravatar

Re: [cppba] a ver los córes!

Hola Gervasio,

Solo para completar el thread:

> Si son char va a pisar con el FF en algún lugar del contador (nunca me
> acuerdo si es big endian, o little endian).

x86 (y todo Intel) es little endian.

Motorola (como ser Apple's PowerPC antes de que se pase a Intel) es big endian.

-- 
Fernando Cacciola
SciSoft Consulting, Founder
http://www.scisoft-consulting.com
--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Edgardo Hames | 19 Jan 2010 21:01
Picon
Gravatar

Re: [cppba] a ver los córes!

2010/1/19 Pablo Jorge <phj.arg@...>:
> Una especie de "while(1);" rebuscado? ;)

Sos un grosso. Sabelo.

>
> 2010/1/19 Daniel Gutson <danielgutson@...>
>>
>> int main(void)
>> {
>> int array[40];
>> int i;
>> for (i=0; i<=40; ++i)
>> array[i] = -1;
>> return 0;
>> }
>>
>> qué onda? (Dato: x86).
>> NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.
>> Al que lo saca le paso un video buenísimo del pato donald.
>> --
>> Who’s got the sweetest disposition?
>> One guess, that’s who?
>> Who’d never, ever start an argument?
>> Who never shows a bit of temperament?
>> Who's never wrong but always right?
>> Who'd never dream of starting a fight?
>> Who get stuck with all the bad luck?
>>
>> --
>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
>> este mesaje por error.
>> En caso de duda visita "http://groups.google.com/group/cppba"
>
>
> --
> The whole problem with the world is that fools and fanatics are always so
> certain of themselves, but wiser people so full of doubts - Bertrand Rusell
>
> --
> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
> este mesaje por error.
> En caso de duda visita "http://groups.google.com/group/cppba"
>

-- 
The mere formulation of a problem is far more essential than its solution,
which may be merely a matter of mathematical or experimental skills.
-- Albert Einstein
--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"
Juan Manuel Ollé | 19 Jan 2010 21:44
Picon

Re: [cppba] a ver los córes!

Imagino que donde termina el array esta el i, por ende, le asigna -1 al cual luego le hace ++ i vuelve a escribir sobre el array
ahora, si en lugar de un array a enteros fuese un array a char?

int main(void)
{
char array[37];
int i;

for (i=0; i<=37; ++i)
array[i] = -1;

return 0;
}

?


El 19 de enero de 2010 17:01, Edgardo Hames <ehames-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> escribió:
2010/1/19 Pablo Jorge <phj.arg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>:
> Una especie de "while(1);" rebuscado? ;)

Sos un grosso. Sabelo.

>
> 2010/1/19 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>
>> int main(void)
>> {
>> int array[40];
>> int i;
>> for (i=0; i<=40; ++i)
>> array[i] = -1;
>> return 0;
>> }
>>
>> qué onda? (Dato: x86).
>> NO VALE COMPILAR NI EJECUTAR NI NADA. Sólo mirar.
>> Al que lo saca le paso un video buenísimo del pato donald.
>> --
>> Who’s got the sweetest disposition?
>> One guess, that’s who?
>> Who’d never, ever start an argument?
>> Who never shows a bit of temperament?
>> Who's never wrong but always right?
>> Who'd never dream of starting a fight?
>> Who get stuck with all the bad luck?
>>
>> --
>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
>> este mesaje por error.
>> En caso de duda visita "http://groups.google.com/group/cppba"
>
>
> --
> The whole problem with the world is that fools and fanatics are always so
> certain of themselves, but wiser people so full of doubts - Bertrand Rusell
>
> --
> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
> este mesaje por error.
> En caso de duda visita "http://groups.google.com/group/cppba"
>



--
The mere formulation of a problem is far more essential than its solution,
which may be merely a matter of mathematical or experimental skills.
-- Albert Einstein

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"

--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"

Gmane