162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci:Original: :ref:`Documentation/process/researcher-guidelines.rst` 462306a36Sopenharmony_ci:Translator: Avadhut Naik <avadhut.naik@amd.com> 562306a36Sopenharmony_ci 662306a36Sopenharmony_ciDirectrices para Investigadores 762306a36Sopenharmony_ci++++++++++++++++++++++++++++++++ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciLa comunidad del kernel de Linux da la bienvenida a la investigación 1062306a36Sopenharmony_citransparente sobre el kernel de Linux, las actividades involucradas 1162306a36Sopenharmony_cien su producción, otros subproductos de su desarrollo. Linux se 1262306a36Sopenharmony_cibeneficia mucho de este tipo de investigación, y la mayoría de los 1362306a36Sopenharmony_ciaspectos de Linux son impulsados por investigación en una forma u otra. 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciLa comunidad agradece mucho si los investigadores pueden compartir 1662306a36Sopenharmony_cilos hallazgos preliminares antes de hacer públicos sus resultados, 1762306a36Sopenharmony_ciespecialmente si tal investigación involucra seguridad. Involucrarse 1862306a36Sopenharmony_citemprano ayuda a mejorar la calidad de investigación y la capacidad 1962306a36Sopenharmony_cide Linux para mejorar a partir de ella. En cualquier caso, se recomienda 2062306a36Sopenharmony_cicompartir copias de acceso abierto de la investigación publicada con 2162306a36Sopenharmony_cila comunidad. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciEste documento busca clarificar lo que la comunidad del kernel de Linux 2462306a36Sopenharmony_ciconsidera practicas aceptables y no aceptables al llevar a cabo 2562306a36Sopenharmony_ciinvestigación de este tipo. Por lo menos, dicha investigación y 2662306a36Sopenharmony_ciactividades afines deben seguir las reglas estándar de ética de la 2762306a36Sopenharmony_ciinvestigación. Para más información sobre la ética de la investigación 2862306a36Sopenharmony_cien general, ética en la tecnología y la investigación de las comunidades 2962306a36Sopenharmony_cide desarrolladores en particular, ver: 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci* `Historia de la Ética en la Investigación <https://www.unlv.edu/research/ORI-HSR/history-ethics>`_ 3362306a36Sopenharmony_ci* `Ética de la IEEE <https://www.ieee.org/about/ethics/index.html>`_ 3462306a36Sopenharmony_ci* `Perspectivas de Desarrolladores e Investigadores sobre la Ética de los Experimentos en Proyectos de Código Abierto <https://arxiv.org/pdf/2112.13217.pdf>`_ 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ciLa comunidad del kernel de Linux espera que todos los que interactúan con 3762306a36Sopenharmony_ciel proyecto están participando en buena fe para mejorar Linux. La 3862306a36Sopenharmony_ciinvestigación sobre cualquier artefacto disponible públicamente (incluido, 3962306a36Sopenharmony_cipero no limitado a código fuente) producido por la comunidad del kernel 4062306a36Sopenharmony_cide Linux es bienvenida, aunque la investigación sobre los desarrolladores 4162306a36Sopenharmony_cidebe ser claramente opcional. 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciLa investigación pasiva que se basa completamente en fuentes disponibles 4462306a36Sopenharmony_cipúblicamente, incluidas las publicaciones en listas de correo públicas y 4562306a36Sopenharmony_cilas contribuciones a los repositorios públicos, es claramente permitida. 4662306a36Sopenharmony_ciAunque, como con cualquier investigación, todavía se debe seguir la ética 4762306a36Sopenharmony_ciestándar. 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ciLa investigación activa sobre el comportamiento de los desarrolladores, 5062306a36Sopenharmony_cisin embargo, debe hacerse con el acuerdo explícito y la divulgación 5162306a36Sopenharmony_cicompleta a los desarrolladores individuales involucrados. No se puede 5262306a36Sopenharmony_ciinteractuar / experimentar con los desarrolladores sin consentimiento; 5362306a36Sopenharmony_ciesto también es ética de investigación estándar. 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ciPara ayudar a aclarar: enviar parches a los desarrolladores es interactuar 5662306a36Sopenharmony_cicon ellos, pero ya han dado su consentimiento para recibir contribuciones 5762306a36Sopenharmony_cien buena fe. No se ha dado consentimiento para enviar parches intencionalmente 5862306a36Sopenharmony_cidefectuosos / vulnerables o contribuir con la información engañosa a las 5962306a36Sopenharmony_cidiscusiones. Dicha comunicación puede ser perjudicial al desarrollador (por 6062306a36Sopenharmony_ciejemplo, agotar el tiempo, el esfuerzo, y la moral) y perjudicial para el 6162306a36Sopenharmony_ciproyecto al erosionar la confianza de toda la comunidad de desarrolladores en 6262306a36Sopenharmony_ciel colaborador (y la organización del colaborador en conjunto), socavando 6362306a36Sopenharmony_cilos esfuerzos para proporcionar reacciones constructivas a los colaboradores 6462306a36Sopenharmony_ciy poniendo a los usuarios finales en riesgo de fallas de software. 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ciLa participación en el desarrollo de Linux en sí mismo por parte de 6762306a36Sopenharmony_ciinvestigadores, como con cualquiera, es bienvenida y alentada. La 6862306a36Sopenharmony_ciinvestigación del código de Linux es una práctica común, especialmente 6962306a36Sopenharmony_cicuando se trata de desarrollar o ejecutar herramientas de análisis que 7062306a36Sopenharmony_ciproducen resultados procesables. 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ciCuando se interactúa con la comunidad de desarrolladores, enviar un 7362306a36Sopenharmony_ciparche ha sido tradicionalmente la mejor manera para hacer un impacto. 7462306a36Sopenharmony_ciLinux ya tiene muchos errores conocidos – lo que es mucho más útil es 7562306a36Sopenharmony_citener soluciones verificadas. Antes de contribuir, lea cuidadosamente 7662306a36Sopenharmony_cila documentación adecuada. 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci* Documentation/process/development-process.rst 7962306a36Sopenharmony_ci* Documentation/process/submitting-patches.rst 8062306a36Sopenharmony_ci* Documentation/admin-guide/reporting-issues.rst 8162306a36Sopenharmony_ci* Documentation/process/security-bugs.rst 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ciEntonces envíe un parche (incluyendo un registro de confirmación con 8462306a36Sopenharmony_citodos los detalles enumerados abajo) y haga un seguimiento de cualquier 8562306a36Sopenharmony_cicomentario de otros desarrolladores. 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci* ¿Cuál es el problema específico que se ha encontrado? 8862306a36Sopenharmony_ci* ¿Como podría llegar al problema en un sistema en ejecución? 8962306a36Sopenharmony_ci* ¿Qué efecto tendría encontrar el problema en el sistema? 9062306a36Sopenharmony_ci* ¿Como se encontró el problema? Incluya específicamente detalles sobre 9162306a36Sopenharmony_ci cualquier prueba, programas de análisis estáticos o dinámicos, y cualquier 9262306a36Sopenharmony_ci otra herramienta o método utilizado para realizar el trabajo. 9362306a36Sopenharmony_ci* ¿En qué versión de Linux se encontró el problema? Se prefiere usar la 9462306a36Sopenharmony_ci versión más reciente o una rama reciente de linux-next (ver 9562306a36Sopenharmony_ci Documentation/process/howto.rst). 9662306a36Sopenharmony_ci* ¿Que se cambió para solucionar el problema y por qué se cree es correcto? 9762306a36Sopenharmony_ci* ¿Como se probó el cambio para la complicación y el tiempo de ejecución? 9862306a36Sopenharmony_ci* ¿Qué confirmación previa corrige este cambio? Esto debería ir en un “Fixes:” 9962306a36Sopenharmony_ci etiqueta como se describe en la documentación. 10062306a36Sopenharmony_ci* ¿Quién más ha revisado este parche? Esto debería ir con la adecuada “Reviewed-by” 10162306a36Sopenharmony_ci etiqueta; Vea abajo. 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ciPor ejemplo (en inglés, pues es en las listas):: 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci From: Author <author@email> 10662306a36Sopenharmony_ci Subject: [PATCH] drivers/foo_bar: Add missing kfree() 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci The error path in foo_bar driver does not correctly free the allocated 10962306a36Sopenharmony_ci struct foo_bar_info. This can happen if the attached foo_bar device 11062306a36Sopenharmony_ci rejects the initialization packets sent during foo_bar_probe(). This 11162306a36Sopenharmony_ci would result in a 64 byte slab memory leak once per device attach, 11262306a36Sopenharmony_ci wasting memory resources over time. 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ci This flaw was found using an experimental static analysis tool we are 11562306a36Sopenharmony_ci developing, LeakMagic[1], which reported the following warning when 11662306a36Sopenharmony_ci analyzing the v5.15 kernel release: 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci path/to/foo_bar.c:187: missing kfree() call? 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci Add the missing kfree() to the error path. No other references to 12162306a36Sopenharmony_ci this memory exist outside the probe function, so this is the only 12262306a36Sopenharmony_ci place it can be freed. 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci x86_64 and arm64 defconfig builds with CONFIG_FOO_BAR=y using GCC 12562306a36Sopenharmony_ci 11.2 show no new warnings, and LeakMagic no longer warns about this 12662306a36Sopenharmony_ci code path. As we don't have a FooBar device to test with, no runtime 12762306a36Sopenharmony_ci testing was able to be performed. 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci [1] https://url/to/leakmagic/details 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci Reported-by: Researcher <researcher@email> 13262306a36Sopenharmony_ci Fixes: aaaabbbbccccdddd ("Introduce support for FooBar") 13362306a36Sopenharmony_ci Signed-off-by: Author <author@email> 13462306a36Sopenharmony_ci Reviewed-by: Reviewer <reviewer@email> 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ciSi usted es un colaborador por primera vez, se recomienda que el parche en 13762306a36Sopenharmony_cisi sea examinado por otros en privado antes de ser publicado en listas 13862306a36Sopenharmony_cipúblicas. (Esto es necesario si se le ha dicho explícitamente que sus parches 13962306a36Sopenharmony_cinecesitan una revisión interna más cuidadosa.) Se espera que estas personas 14062306a36Sopenharmony_citengan su etiqueta “Reviewed-by” incluida en el parche resultante. Encontrar 14162306a36Sopenharmony_ciotro desarrollador con conocimiento de las contribuciones a Linux, especialmente 14262306a36Sopenharmony_cidentro de su propia organización, y tener su ayuda con las revisiones antes de 14362306a36Sopenharmony_cienviarlas a las listas de correo publico tiende a mejorar significativamente la 14462306a36Sopenharmony_cicalidad de los parches resultantes, y reduce así la carga de otros desarrolladores. 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ciSi no se puede encontrar a nadie para revisar internamente los parches y necesita 14762306a36Sopenharmony_ciayuda para encontrar a esa persona, o si tiene alguna otra pregunta relacionada 14862306a36Sopenharmony_cicon este documento y las expectativas de la comunidad de desarrolladores, por 14962306a36Sopenharmony_cifavor contacte con la lista de correo privada Technical Advisory Board: 15062306a36Sopenharmony_ci<tech-board@lists.linux-foundation.org>. 151