python / python/cpython

-Wstringop-truncation warning in socketmodule.c getsockaddrarg() for AF_ALG salg_name

Abierto
#149,706 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

extension-modules pending topic-socket type-bug
Lenguaje dominante
Python
Estrellas
77.2k
Forks
35.9k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Bug report

Bug description:

Building 3.14.5 with gcc 15.2 produces this warning:

    default: ./Modules/socketmodule.c: In function ‘getsockaddrarg’:
    default: ./Modules/socketmodule.c:2636:9: warning: ‘strncpy’ specified bound 64 equals destination size [-Wstringop-truncation]
    default:  2636 |         strncpy((char *)sa->salg_name, name, sizeof(sa->salg_name));
    default:       |         ^

Build environment: Ubuntu 26.04 LTS, gcc 15.2.0, configure with

./configure --enable-optimizations --with-lto --enable-bolt --enable-safety --enable-slower-safety --with-system-expat CXX=/usr/bin/g++ CFLAGS="-flto=auto" LDFLAGS="-flto=auto"

This looks like a false positive. I see this location reported in https://github.com/python/cpython/issues/94536 and there is a fix for a similar warning here:
https://github.com/matthiasgoergens/cpython/commit/c1fdddcf0f7b31a5954163bfd299115b1fa7799b

Would the following be a good fix that mirrors that older one?

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstringop-truncation"
strncpy((char *)sa->salg_name, name, sizeof(sa->salg_name));
#pragma GCC diagnostic pop
CPython versions tested on:

3.14

Operating systems tested on:

Linux

Linked PRs
  • gh-150022

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza en Modules/socketmodule.c, en el manejo de AF_ALG de getsockaddrarg(), e inspecciona la advertencia de strncpy indicada. Revisa el issue correspondiente de CPython y el PR vinculado gh-150022; después, verifica con la compilación de GCC indicada que la advertencia se ha resuelto sin cambiar el comportamiento del socket.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
c
Área
networking
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.