python / python/cpython

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

Ouverte
#149,706 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

extension-modules pending topic-socket type-bug
Langage dominant
Python
Étoiles
77.2k
Forks
35.9k
Métriques de merge des PR
Métriques de PR en attente

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez dans Modules/socketmodule.c, au niveau du traitement de AF_ALG par getsockaddrarg(), et examinez l’avertissement strncpy signalé. Consultez l’issue CPython correspondante et la PR liée gh-150022, puis vérifiez avec le build GCC indiqué que l’avertissement est résolu sans modifier le comportement du socket.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
c
Domaine
networking
Type d'issue
Bug
Difficulté
2/5
Temps estimé
1-3 heures
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.