From: Tomas Mraz Date: Mon, 25 Mar 2019 13:51:26 +0000 (+0100) Subject: Do not crash in commonio_close if database FILE not opened. X-Git-Tag: 4.7~16^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F157%2Fhead;p=thirdparty%2Fshadow.git 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. --- diff --git a/lib/commonio.c b/lib/commonio.c index 0b9022ef7..26e518f22 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; }