From d6276066ddd3a1cb0ae923dd0da9921466d40d03 Mon Sep 17 00:00:00 2001 From: Tomas Mraz Date: Mon, 25 Mar 2019 14:51:26 +0100 Subject: [PATCH] Do not crash in commonio_close if database FILE not opened. The db->fp can be NULL if commonio_unlock() is called when the shadow file is opened but did not exist before. --- lib/commonio.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/commonio.c b/lib/commonio.c index 0b9022ef..26e518f2 100644 --- a/lib/commonio.c +++ b/lib/commonio.c @@ -925,7 +925,6 @@ static int write_all (const struct commonio_db *db) int commonio_close (struct commonio_db *db) - /*@requires notnull db->fp@*/ { char buf[1024]; int errors = 0; @@ -938,8 +937,10 @@ int commonio_close (struct commonio_db *db) db->isopen = false; if (!db->changed || db->readonly) { - (void) fclose (db->fp); - db->fp = NULL; + if (NULL != db->fp) { + (void) fclose (db->fp); + db->fp = NULL; + } goto success; }