numpy::from_data calls vector::front and crashes (or has UB) when called with a scalar object

Offen Anfängerfreundlich
#526 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
1/5
Geschätzter Aufwand
Unter einer Stunde
Anfängerfreundlichkeit
84/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Ruhig
Tech-Stack
cpp
Bereich
backend

Rechercherichtung

Beginne in ndarray.cpp bei from_data_impl, wo shape.front() und strides.front() für möglicherweise leere Vektoren verwendet werden. Reproduziere oder überprüfe den Pfad für Skalarobjekte und verifiziere, dass er keinen ungültigen Zugriff mehr ausführt oder abstürzt; führe die relevanten vorhandenen Tests des Repositorys aus, falls verfügbar. Als erledigt gilt die Aufgabe, wenn skalare from_data-Aufrufe ohne undefiniertes Verhalten oder den gemeldeten Absturz funktionieren.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

In ndarray.cpp, the function from_data_impl calls &shape.front() and &strides.front() for possibly empty vectors. This is, at best, undefined behavior. At worst, it triggers a crash (observed on Redhat/rocky 8&9, where I'm assuming boost::python packages were built with -D_GLIBCXX_DEBUG).

RECOMMEND: change &vec.front() to vec.data() to avoid UB and potential crashes.

Vorherrschende Sprache
C++
Sterne
537
Forks
223
Ø Merge
11 Std. 22 Min.
Gemergte PRs (30 T.)
2

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus boostorg/python

Alle Issues in boostorg/python

Ähnliche Issues

Weitere Issues zu C++

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.