Skip to content
This repository was archived by the owner on Jan 6, 2023. It is now read-only.
This repository was archived by the owner on Jan 6, 2023. It is now read-only.

crash on bad pointer free #60

@petermarko

Description

@petermarko

Prevent crash on wrong free like this one:

ensure_table(): database is locked
*** Error in `cve-check-tool': free(): invalid pointer: 0x0000000002368838 ***

Proposed patch:

From 27bd5b6ccd107bd2b143019419725ff778ebd133 Mon Sep 17 00:00:00 2001
From: Peter Marko <peter.marko@siemens.com>
Date: Thu, 13 Apr 2017 23:09:52 +0200
Subject: [PATCH] Fix freeing memory allocated by sqlite

---
 src/core.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/core.c b/src/core.c
index 4389d9b..cfdda55 100644
--- a/src/core.c
+++ b/src/core.c
@@ -83,7 +83,7 @@ static bool ensure_table(CveDB *self)
         rc = sqlite3_exec(self->db, query, NULL, NULL, &err);
         if (rc != SQLITE_OK) {
                 fprintf(stderr, "ensure_table(): %s\n", err);
-                free(err);
+                sqlite3_free(err);
                 return false;
         }
 
@@ -93,7 +93,7 @@ static bool ensure_table(CveDB *self)
         rc = sqlite3_exec(self->db, query, NULL, NULL, &err);
         if (rc != SQLITE_OK) {
                 fprintf(stderr, "ensure_table(): %s\n", err);
-                free(err);
+                sqlite3_free(err);
                 return false;
         }
 
@@ -103,11 +103,11 @@ static bool ensure_table(CveDB *self)
         rc = sqlite3_exec(self->db, query, NULL, NULL, &err);
         if (rc != SQLITE_OK) {
                 fprintf(stderr, "ensure_table(): %s\n", err);
-                free(err);
+                sqlite3_free(err);
                 return false;
         }
         if (err) {
-                free(err);
+                sqlite3_free(err);
         }
 
         return true;
-- 
2.1.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions