]> granicus.if.org Git - neomutt/commitdiff
Convert hcache db4 lockfile to buffer
authorKevin McCarthy <kevin@8t8.us>
Fri, 27 Sep 2019 22:46:49 +0000 (15:46 -0700)
committerRichard Russon <rich@flatcap.org>
Tue, 8 Oct 2019 16:43:58 +0000 (17:43 +0100)
Co-authored-by: Richard Russon <rich@flatcap.org>
hcache/bdb.c

index d9e7bcc61ca630793ce3118b1bcd388656d3dd3c..b0f9ca3bbfa22591d88323ce8e3b022bb5d486f8 100644 (file)
@@ -51,7 +51,7 @@ struct HcacheDbCtx
   DB_ENV *env;
   DB *db;
   int fd;
-  char lockfile[PATH_MAX];
+  struct Buffer lockfile;
 };
 
 /**
@@ -99,9 +99,10 @@ static void *hcache_bdb_open(const char *path)
   if (pagesize <= 0)
     pagesize = 16384;
 
-  snprintf(ctx->lockfile, sizeof(ctx->lockfile), "%s-lock-hack", path);
+  ctx->lockfile = mutt_buffer_make(128);
+  mutt_buffer_printf(&ctx->lockfile, "%s-lock-hack", path);
 
-  ctx->fd = open(ctx->lockfile, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);
+  ctx->fd = open(mutt_b2s(&ctx->lockfile), O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);
   if (ctx->fd < 0)
   {
     FREE(&ctx);
@@ -144,7 +145,8 @@ fail_unlock:
   mutt_file_unlock(ctx->fd);
 fail_close:
   close(ctx->fd);
-  unlink(ctx->lockfile);
+  unlink(mutt_b2s(&ctx->lockfile));
+  mutt_buffer_dealloc(&ctx->lockfile);
   FREE(&ctx);
 
   return NULL;
@@ -233,7 +235,8 @@ static void hcache_bdb_close(void **ptr)
   db->env->close(db->env, 0);
   mutt_file_unlock(db->fd);
   close(db->fd);
-  unlink(db->lockfile);
+  unlink(mutt_b2s(&db->lockfile));
+  mutt_buffer_dealloc(&db->lockfile);
   FREE(ptr);
 }