php / php/php-src

Inconsistent/missing checks for sqlite3 APIs

Offen
#22,051 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bug Extension: sqlite3 Status: Needs Triage
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.1k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

Description

Several calls to sqlite3_reset and sqlite3_finalize are unchecked.

Some calls to sqlite3_reset are checked and then the value is returned to the user:

https://github.com/php/php-src/blob/cde32beadeee04c16d8607266ea7586078fbc9df/ext/sqlite3/sqlite3.c#L1414-L1417

https://github.com/php/php-src/blob/cde32beadeee04c16d8607266ea7586078fbc9df/ext/sqlite3/sqlite3.c#L2101-L2103

Note however an inconsistency between these two: one of them throw/warns and the other one doesn't. This likely needs to be made consistent.

It's probably best if the calls to sqlite3_reset and sqlite3_finalize are checked consistently everywhere.

Note: found by a static-dynamic hybrid analyzer I'm developing.

PHP Version
Checked on master branch
Operating System

N/A

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie in ext/sqlite3/sqlite3.c mit der Prüfung der Aufrufe von sqlite3_reset und sqlite3_finalize, einschließlich der Stellen in den Zeilen 1414-1417 und 2101-2103. Vergleichen Sie deren Prüfungs- und throw/warn-Verhalten. Erledigt ist die Aufgabe, wenn die relevanten Aufrufe konsistent geprüft werden und das unterschiedliche Verhalten abgeglichen ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c, sqlite
Bereich
databases
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

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