winreg.ExpandEnvironmentStrings() passes the buffer size as the error code on failure

Offen Anfängerfreundlich
#161,021 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
68/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
c, python

Rechercherichtung

Der Fehler liegt in PC/winreg.c um die Zeilen 1265-1266, in der Implementierung von winreg.ExpandEnvironmentStrings(). Lies den ersten Aufruf von ExpandEnvironmentStringsW(), der die benötigte Puffergröße zurückgibt, und prüfe, wie der Fehlerpfad diesen Wert als Fehlercode meldet. Fertig ist es, wenn ein Fehler eine Exception auslöst, die den echten Windows-Fehlercode aus GetLastError trägt. Zur Überprüfung wird ein Windows-Build benötigt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

OS-windows type-bug

https://github.com/python/cpython/blob/2468c35c3b3375fe0745fa5b5429d47098ebb45e/PC/winreg.c#L1265-L1266

retValueSize is the required buffer size returned by the first ExpandEnvironmentStringsW() call, but it is passed as the error code here, which raises an exception with a misleading error number.

Vorherrschende Sprache
Python
Sterne
77.8k
Forks
37.7k
Ø Merge
17 Std. 24 Min.
Gemergte PRs (30 T.)
716

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

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 python/cpython

Alle Issues in python/cpython

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

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