Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Fiddle::Pointer#[]= copies beyond the source pointer size

Offen
#214 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
52/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Ruhig
Tech-Stack
ruby
Bereich
backend

Rechercherichtung

Beginne damit, die Ruby-Reproduktion im Issue auszuführen und die Implementierung von Fiddle::Pointer#[]= zu untersuchen, um nachzuverfolgen, wie ein source Pointer kopiert wird. Füge Regressionstests für einen source Pointer hinzu, der kleiner als der angeforderte Zielbereich ist, und überprüfe anschließend, dass Bytes hinter dem source Pointer nicht kopiert werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

require "fiddle"

include Fiddle

dst = Pointer.malloc(32, RUBY_FREE)
src = Pointer.malloc(4, RUBY_FREE)

dst[0, 32] = "\x00" * 32
src[0, 4] = "\xAA\xBB\xCC\xDD"

# src is only 4 bytes, but 16 bytes are copied.
dst[0, 16] = src

puts dst.to_str(32)
        .bytes
        .first(16)
        .map { |b| "%02x" % b }
        .join(" ")

# aa bb cc dd ad 78 00 00 d8 2a a1 98 ad 78 00 00
# (In my environment)
Vorherrschende Sprache
Ruby
Sterne
195
Forks
53
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

  • Enthält ein Dockerfile oder eine Docker-Compose-Datei
  • Keine Pull-Request-Vorlage
  • Kein Beitragsleitfaden

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 ruby/fiddle

Alle Issues in ruby/fiddle

Ähnliche Issues

Weitere Issues zu Ruby

Neue Issues direkt in Ihr Postfach

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