Linuxant colaba código propietario en el kernel de Linux de forma engañosa

Como lo oís, Linuxant, la compañía que sacó los primeros drivers para Linux de las tarjetas Wi-Fi de los portátiles Centrino es culpable de engañar a las herramientas de los desarrolladores del núcleo y al núcleo en sí que detectan si el código introducido es GPL o no.

La cosa es la siguiente: todos los módulos del kernel deben tener una macro MODULE_LICENSE con un texto que indica que el código usado es GPL. Pues bien, la jugada de Linuxant a sido colocar la función de esta manera:

MODULE_LICENSE("GPL\0for files in the \"GPL\" directory; for others, only
LICENSE file applies");

¿Os dais cuenta del "\0" despues de GPL? En C, esa secuencia de escape indica final de texto, por lo que el resto es indetectable para el núcleo. En definitiva, el "for others, only LICENSE file applies" no aparecía.

Echando un vistazo al código del módulo resulta que tenía una parte propietaria (binaria, ilegible para nadie).

Esta es la entrada en la lista de correo que detecta la situación, y esta la de un Linus Torvalds cabreadísimo exigiendo que se borre pero ya ese "código mentiroso".

En Barrapunto se hacen eco de la noticia.
Vaya...desde luego Linus estaba cabreado.
Pero...¿que gana metiendo algo así?
Tremendo.

Since string comparisons stop at the first "\0" character, the kernel is tricked into thinking the modules are GPL. Btw, the "GPL" directory they are speaking about is empty.


A esta gente les tenían que meter un buen palo por lo legal. Vaya forma más rastrera de engañar a la gente.

Saludos.
Increible que tengan las suficientes "pelotas" para hacer eso sabiendo que cualquier persona podria darse cuenta y no solo unos pocos.

Si, a Linus se le ve realmente cabreado. [tomaaa]
que verguenza.
y pensar que he llegado a pagar dinero a esa gentuza

por cierto... linus says "Pronto"!!! isn't it a spanish word?
Does anyone know what that word means?
pero...........no entiendo, q pasa? por q tienen q poner q es GPL ? sino no funciona?
Si funcionar funciona (cómo el driver de nvidia por ejemplo), pero "ensucia" el kernel, ya que no tiene la misma licencia, y el código no está disponible.

Lo que hacían "éstos" era meter código binario dentro del suyo, y encima ponían que la licencia era GPL, para que al cargar el módulo no avisase el kernel de que no era GPL.
y de que les sirve eso? que mas dara que le diga al kernel si es gpl o no, si no es gpl y funciona, pos ya vale no?
keo01 escribió:y de que les sirve eso? que mas dara que le diga al kernel si es gpl o no, si no es gpl y funciona, pos ya vale no?

Pues que es código propietario y por lo tanto no pueden tenerlo en el kernel sin el consentimiento del propietario, diciendo además que es su código. Lo que no entiendo es como lo han descubierto si está en binario...
Un saludo.
coleco escribió:que verguenza.
y pensar que he llegado a pagar dinero a esa gentuza

por cierto... linus says "Pronto"!!! isn't it a spanish word?
Does anyone know what that word means?


The word pronto comes to the English language from the Spanish pronto, which has the same meaning. Although both the Spanish and Italian words pronto came from the Latin promptus meaning quick, it is usually not used in this sense in Italian, but rather is used to mean ready. End of etymology lesson My friend coleco [beer]
Jaime escribió:Pues que es código propietario y por lo tanto no pueden tenerlo en el kernel sin el consentimiento del propietario, diciendo además que es su código. Lo que no entiendo es como lo han descubierto si está en binario...
Un saludo.


Si, pero los propietarios del codigo son los de Linuxant,que para eso son los que han hecho los drivers de los winmodems, y los venden..... asi q no veo yo muy claro de que va todo esto....

Dicho codigo, donde esta ubicado, en un modulo opcional del kernel? y ese modulo viene con el kernel oficial? entonces han hecho eso para que lo metan en el kernel oficial , y sin embargo siga siendo propietario? O es una cosa q el usuario se baja y lo mete en su kernel? por q como sea lo primero es k hay k ser muuuuuuu tonto pa hacer lo que han hecho....
Dicho codigo, donde esta ubicado, en un modulo opcional del kernel? y ese modulo viene con el kernel oficial? entonces han hecho eso para que lo metan en el kernel oficial , y sin embargo siga siendo propietario? O es una cosa q el usuario se baja y lo mete en su kernel? por q como sea lo primero es k hay k ser muuuuuuu tonto pa hacer lo que han hecho....


Tener un módulo aparte del kernel, que no viene con el mismo kernel, y que no es libre, es perfectamente legal. De hecho, es lo que pasa con los drivers de nvidia. Pero si te fijas los drivers de nvidia NO pueden incluirlos en el kernel, porque violarían la licencia GPL del kernel (todo el kernel debe ser 100% libre). Es por eso que un requisito para que un módulo se publique en el kernel es que sea GPL.

Lógicamente un binario no puede ser GPL porque no es legible, y lo que han hecho Linuxant es intentar meterlo en el kernel haciendole creer que es GPL. Y si, son muuuy tontos, por pensar que no los iban a descubrir.
joder pos mira q son cortos..... si supongo q todo lo que entra en el kernel lo deben de mirar con lupa.....

pero..... a todo esto...... los de linuxant no se ganaban la vida vendiendo esos drivers? entonces por que los querian incluir en el kernel? Supongo que sera por q no se los compraba ni dios y ya que lo habian hecho pues que la comunidad se aprovechara de ellos gratuitamente, lo que no lo podran abrir como GPL por que para hacerlos tubieron que "comprar" las especificaciones secretas a los fabricantes de los winmodems, y estas especificaciones no son GPL...
El problema no es ese; según tengo entendido el tema es el siguiente:

El kernel cada vez que se carga un módulo (o submódulo lógico) que no es GPL manda un mensaje al log diciendo que el kernel puede estar corrupto por el modulo X. Realmente siendo puristas NINGÚN módulo binario debería poder distribuirse y cargarse en el kernel, es una clara violación de la GPL:

a) No puedes linkar binario no GPL con fuentes GPL
b) Un módulo se considera trabajo derivado del kernel y no un proyecto "standalone", ya que los modulos usan API GPL.

Linuxant dice que ha hecho eso porque driver usa muchos submódulos y que el kernel llenaba de mensajes el log de sus usuarios. A lo que Rusty Russel (mantainer de IPtables y responsable de la API de modulos del 2.6) le dice que eso se solucionaba con un cambio de una linea en el fichero modules.c y que si querian ser 'legales' siempre podían haber incluido ellos mismos un printk() cosa que no hicieron.

Por otro lado, por lo visto no todos los paquetes traen el directorio GPL/ vacío.

Desde mi punto de vista se han pasado de listos, porque eso del GPL\0blablabla es una putada es como:

Eres un grandisimo\0 cabron como\0 jefe.

O algo por el estilo...

Saludos.Ferdy
13 respuestas