From 7f9206336a0766e655dab76f0073a10de2dcda5f Mon Sep 17 00:00:00 2001 From: Ryan Flynn Date: Tue, 13 Mar 2012 17:47:35 -0400 Subject: [PATCH] if logfile open fails fallback to /dev/null or stderr rather than crash --- c_src/sqlite3_drv.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/c_src/sqlite3_drv.c b/c_src/sqlite3_drv.c index c462c2d..6ce5531 100644 --- a/c_src/sqlite3_drv.c +++ b/c_src/sqlite3_drv.c @@ -63,7 +63,12 @@ static ErlDrvData start(ErlDrvPort port, char* cmd) { retval->log = fopen(LOG_PATH, "a+"); if (!retval->log) { - fprintf(stderr, "Can't create log file\n"); + fprintf(stderr, "Error creating log file: %s\n", LOG_PATH); + // because logging isn't abstracted away we need a valid FILE* + // fall back to anything rather than segfault later + retval->log = fopen("/dev/null", "a+"); + if (!retval->log) + retval->log = stderr; // noisy } fprintf(retval->log,