1*9e6e2ed2SAvadhut Naik.. SPDX-License-Identifier: GPL-2.0 2*9e6e2ed2SAvadhut Naik 3*9e6e2ed2SAvadhut Naik:Original: :ref:`Documentation/process/researcher-guidelines.rst` 4*9e6e2ed2SAvadhut Naik:Translator: Avadhut Naik <avadhut.naik@amd.com> 5*9e6e2ed2SAvadhut Naik 6*9e6e2ed2SAvadhut NaikDirectrices para Investigadores 7*9e6e2ed2SAvadhut Naik++++++++++++++++++++++++++++++++ 8*9e6e2ed2SAvadhut Naik 9*9e6e2ed2SAvadhut NaikLa comunidad del kernel de Linux da la bienvenida a la investigación 10*9e6e2ed2SAvadhut Naiktransparente sobre el kernel de Linux, las actividades involucradas 11*9e6e2ed2SAvadhut Naiken su producción, otros subproductos de su desarrollo. Linux se 12*9e6e2ed2SAvadhut Naikbeneficia mucho de este tipo de investigación, y la mayoría de los 13*9e6e2ed2SAvadhut Naikaspectos de Linux son impulsados por investigación en una forma u otra. 14*9e6e2ed2SAvadhut Naik 15*9e6e2ed2SAvadhut NaikLa comunidad agradece mucho si los investigadores pueden compartir 16*9e6e2ed2SAvadhut Naiklos hallazgos preliminares antes de hacer públicos sus resultados, 17*9e6e2ed2SAvadhut Naikespecialmente si tal investigación involucra seguridad. Involucrarse 18*9e6e2ed2SAvadhut Naiktemprano ayuda a mejorar la calidad de investigación y la capacidad 19*9e6e2ed2SAvadhut Naikde Linux para mejorar a partir de ella. En cualquier caso, se recomienda 20*9e6e2ed2SAvadhut Naikcompartir copias de acceso abierto de la investigación publicada con 21*9e6e2ed2SAvadhut Naikla comunidad. 22*9e6e2ed2SAvadhut Naik 23*9e6e2ed2SAvadhut NaikEste documento busca clarificar lo que la comunidad del kernel de Linux 24*9e6e2ed2SAvadhut Naikconsidera practicas aceptables y no aceptables al llevar a cabo 25*9e6e2ed2SAvadhut Naikinvestigación de este tipo. Por lo menos, dicha investigación y 26*9e6e2ed2SAvadhut Naikactividades afines deben seguir las reglas estándar de ética de la 27*9e6e2ed2SAvadhut Naikinvestigación. Para más información sobre la ética de la investigación 28*9e6e2ed2SAvadhut Naiken general, ética en la tecnología y la investigación de las comunidades 29*9e6e2ed2SAvadhut Naikde desarrolladores en particular, ver: 30*9e6e2ed2SAvadhut Naik 31*9e6e2ed2SAvadhut Naik 32*9e6e2ed2SAvadhut Naik* `Historia de la Ética en la Investigación <https://www.unlv.edu/research/ORI-HSR/history-ethics>`_ 33*9e6e2ed2SAvadhut Naik* `Ética de la IEEE <https://www.ieee.org/about/ethics/index.html>`_ 34*9e6e2ed2SAvadhut Naik* `Perspectivas de Desarrolladores e Investigadores sobre la Ética de los Experimentos en Proyectos de Código Abierto <https://arxiv.org/pdf/2112.13217.pdf>`_ 35*9e6e2ed2SAvadhut Naik 36*9e6e2ed2SAvadhut NaikLa comunidad del kernel de Linux espera que todos los que interactúan con 37*9e6e2ed2SAvadhut Naikel proyecto están participando en buena fe para mejorar Linux. La 38*9e6e2ed2SAvadhut Naikinvestigación sobre cualquier artefacto disponible públicamente (incluido, 39*9e6e2ed2SAvadhut Naikpero no limitado a código fuente) producido por la comunidad del kernel 40*9e6e2ed2SAvadhut Naikde Linux es bienvenida, aunque la investigación sobre los desarrolladores 41*9e6e2ed2SAvadhut Naikdebe ser claramente opcional. 42*9e6e2ed2SAvadhut Naik 43*9e6e2ed2SAvadhut NaikLa investigación pasiva que se basa completamente en fuentes disponibles 44*9e6e2ed2SAvadhut Naikpúblicamente, incluidas las publicaciones en listas de correo públicas y 45*9e6e2ed2SAvadhut Naiklas contribuciones a los repositorios públicos, es claramente permitida. 46*9e6e2ed2SAvadhut NaikAunque, como con cualquier investigación, todavía se debe seguir la ética 47*9e6e2ed2SAvadhut Naikestándar. 48*9e6e2ed2SAvadhut Naik 49*9e6e2ed2SAvadhut NaikLa investigación activa sobre el comportamiento de los desarrolladores, 50*9e6e2ed2SAvadhut Naiksin embargo, debe hacerse con el acuerdo explícito y la divulgación 51*9e6e2ed2SAvadhut Naikcompleta a los desarrolladores individuales involucrados. No se puede 52*9e6e2ed2SAvadhut Naikinteractuar / experimentar con los desarrolladores sin consentimiento; 53*9e6e2ed2SAvadhut Naikesto también es ética de investigación estándar. 54*9e6e2ed2SAvadhut Naik 55*9e6e2ed2SAvadhut NaikPara ayudar a aclarar: enviar parches a los desarrolladores es interactuar 56*9e6e2ed2SAvadhut Naikcon ellos, pero ya han dado su consentimiento para recibir contribuciones 57*9e6e2ed2SAvadhut Naiken buena fe. No se ha dado consentimiento para enviar parches intencionalmente 58*9e6e2ed2SAvadhut Naikdefectuosos / vulnerables o contribuir con la información engañosa a las 59*9e6e2ed2SAvadhut Naikdiscusiones. Dicha comunicación puede ser perjudicial al desarrollador (por 60*9e6e2ed2SAvadhut Naikejemplo, agotar el tiempo, el esfuerzo, y la moral) y perjudicial para el 61*9e6e2ed2SAvadhut Naikproyecto al erosionar la confianza de toda la comunidad de desarrolladores en 62*9e6e2ed2SAvadhut Naikel colaborador (y la organización del colaborador en conjunto), socavando 63*9e6e2ed2SAvadhut Naiklos esfuerzos para proporcionar reacciones constructivas a los colaboradores 64*9e6e2ed2SAvadhut Naiky poniendo a los usuarios finales en riesgo de fallas de software. 65*9e6e2ed2SAvadhut Naik 66*9e6e2ed2SAvadhut NaikLa participación en el desarrollo de Linux en sí mismo por parte de 67*9e6e2ed2SAvadhut Naikinvestigadores, como con cualquiera, es bienvenida y alentada. La 68*9e6e2ed2SAvadhut Naikinvestigación del código de Linux es una práctica común, especialmente 69*9e6e2ed2SAvadhut Naikcuando se trata de desarrollar o ejecutar herramientas de análisis que 70*9e6e2ed2SAvadhut Naikproducen resultados procesables. 71*9e6e2ed2SAvadhut Naik 72*9e6e2ed2SAvadhut NaikCuando se interactúa con la comunidad de desarrolladores, enviar un 73*9e6e2ed2SAvadhut Naikparche ha sido tradicionalmente la mejor manera para hacer un impacto. 74*9e6e2ed2SAvadhut NaikLinux ya tiene muchos errores conocidos – lo que es mucho más útil es 75*9e6e2ed2SAvadhut Naiktener soluciones verificadas. Antes de contribuir, lea cuidadosamente 76*9e6e2ed2SAvadhut Naikla documentación adecuada. 77*9e6e2ed2SAvadhut Naik 78*9e6e2ed2SAvadhut Naik* Documentation/process/development-process.rst 79*9e6e2ed2SAvadhut Naik* Documentation/process/submitting-patches.rst 80*9e6e2ed2SAvadhut Naik* Documentation/admin-guide/reporting-issues.rst 81*9e6e2ed2SAvadhut Naik* Documentation/process/security-bugs.rst 82*9e6e2ed2SAvadhut Naik 83*9e6e2ed2SAvadhut NaikEntonces envíe un parche (incluyendo un registro de confirmación con 84*9e6e2ed2SAvadhut Naiktodos los detalles enumerados abajo) y haga un seguimiento de cualquier 85*9e6e2ed2SAvadhut Naikcomentario de otros desarrolladores. 86*9e6e2ed2SAvadhut Naik 87*9e6e2ed2SAvadhut Naik* ¿Cuál es el problema específico que se ha encontrado? 88*9e6e2ed2SAvadhut Naik* ¿Como podría llegar al problema en un sistema en ejecución? 89*9e6e2ed2SAvadhut Naik* ¿Qué efecto tendría encontrar el problema en el sistema? 90*9e6e2ed2SAvadhut Naik* ¿Como se encontró el problema? Incluya específicamente detalles sobre 91*9e6e2ed2SAvadhut Naik cualquier prueba, programas de análisis estáticos o dinámicos, y cualquier 92*9e6e2ed2SAvadhut Naik otra herramienta o método utilizado para realizar el trabajo. 93*9e6e2ed2SAvadhut Naik* ¿En qué versión de Linux se encontró el problema? Se prefiere usar la 94*9e6e2ed2SAvadhut Naik versión más reciente o una rama reciente de linux-next (ver 95*9e6e2ed2SAvadhut Naik Documentation/process/howto.rst). 96*9e6e2ed2SAvadhut Naik* ¿Que se cambió para solucionar el problema y por qué se cree es correcto? 97*9e6e2ed2SAvadhut Naik* ¿Como se probó el cambio para la complicación y el tiempo de ejecución? 98*9e6e2ed2SAvadhut Naik* ¿Qué confirmación previa corrige este cambio? Esto debería ir en un “Fixes:” 99*9e6e2ed2SAvadhut Naik etiqueta como se describe en la documentación. 100*9e6e2ed2SAvadhut Naik* ¿Quién más ha revisado este parche? Esto debería ir con la adecuada “Reviewed-by” 101*9e6e2ed2SAvadhut Naik etiqueta; Vea abajo. 102*9e6e2ed2SAvadhut Naik 103*9e6e2ed2SAvadhut NaikPor ejemplo (en inglés, pues es en las listas):: 104*9e6e2ed2SAvadhut Naik 105*9e6e2ed2SAvadhut Naik From: Author <author@email> 106*9e6e2ed2SAvadhut Naik Subject: [PATCH] drivers/foo_bar: Add missing kfree() 107*9e6e2ed2SAvadhut Naik 108*9e6e2ed2SAvadhut Naik The error path in foo_bar driver does not correctly free the allocated 109*9e6e2ed2SAvadhut Naik struct foo_bar_info. This can happen if the attached foo_bar device 110*9e6e2ed2SAvadhut Naik rejects the initialization packets sent during foo_bar_probe(). This 111*9e6e2ed2SAvadhut Naik would result in a 64 byte slab memory leak once per device attach, 112*9e6e2ed2SAvadhut Naik wasting memory resources over time. 113*9e6e2ed2SAvadhut Naik 114*9e6e2ed2SAvadhut Naik This flaw was found using an experimental static analysis tool we are 115*9e6e2ed2SAvadhut Naik developing, LeakMagic[1], which reported the following warning when 116*9e6e2ed2SAvadhut Naik analyzing the v5.15 kernel release: 117*9e6e2ed2SAvadhut Naik 118*9e6e2ed2SAvadhut Naik path/to/foo_bar.c:187: missing kfree() call? 119*9e6e2ed2SAvadhut Naik 120*9e6e2ed2SAvadhut Naik Add the missing kfree() to the error path. No other references to 121*9e6e2ed2SAvadhut Naik this memory exist outside the probe function, so this is the only 122*9e6e2ed2SAvadhut Naik place it can be freed. 123*9e6e2ed2SAvadhut Naik 124*9e6e2ed2SAvadhut Naik x86_64 and arm64 defconfig builds with CONFIG_FOO_BAR=y using GCC 125*9e6e2ed2SAvadhut Naik 11.2 show no new warnings, and LeakMagic no longer warns about this 126*9e6e2ed2SAvadhut Naik code path. As we don't have a FooBar device to test with, no runtime 127*9e6e2ed2SAvadhut Naik testing was able to be performed. 128*9e6e2ed2SAvadhut Naik 129*9e6e2ed2SAvadhut Naik [1] https://url/to/leakmagic/details 130*9e6e2ed2SAvadhut Naik 131*9e6e2ed2SAvadhut Naik Reported-by: Researcher <researcher@email> 132*9e6e2ed2SAvadhut Naik Fixes: aaaabbbbccccdddd ("Introduce support for FooBar") 133*9e6e2ed2SAvadhut Naik Signed-off-by: Author <author@email> 134*9e6e2ed2SAvadhut Naik Reviewed-by: Reviewer <reviewer@email> 135*9e6e2ed2SAvadhut Naik 136*9e6e2ed2SAvadhut NaikSi usted es un colaborador por primera vez, se recomienda que el parche en 137*9e6e2ed2SAvadhut Naiksi sea examinado por otros en privado antes de ser publicado en listas 138*9e6e2ed2SAvadhut Naikpúblicas. (Esto es necesario si se le ha dicho explícitamente que sus parches 139*9e6e2ed2SAvadhut Naiknecesitan una revisión interna más cuidadosa.) Se espera que estas personas 140*9e6e2ed2SAvadhut Naiktengan su etiqueta “Reviewed-by” incluida en el parche resultante. Encontrar 141*9e6e2ed2SAvadhut Naikotro desarrollador con conocimiento de las contribuciones a Linux, especialmente 142*9e6e2ed2SAvadhut Naikdentro de su propia organización, y tener su ayuda con las revisiones antes de 143*9e6e2ed2SAvadhut Naikenviarlas a las listas de correo publico tiende a mejorar significativamente la 144*9e6e2ed2SAvadhut Naikcalidad de los parches resultantes, y reduce así la carga de otros desarrolladores. 145*9e6e2ed2SAvadhut Naik 146*9e6e2ed2SAvadhut NaikSi no se puede encontrar a nadie para revisar internamente los parches y necesita 147*9e6e2ed2SAvadhut Naikayuda para encontrar a esa persona, o si tiene alguna otra pregunta relacionada 148*9e6e2ed2SAvadhut Naikcon este documento y las expectativas de la comunidad de desarrolladores, por 149*9e6e2ed2SAvadhut Naikfavor contacte con la lista de correo privada Technical Advisory Board: 150*9e6e2ed2SAvadhut Naik<tech-board@lists.linux-foundation.org>. 151