From 595fd538b4d3aedd55fa37c78fd017ddcee0fc46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net> Date: Mon, 5 Apr 2021 04:33:40 -0400 Subject: [PATCH] Guard against Seen being undefined when saving config. --- exec/imapservice.js | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/exec/imapservice.js b/exec/imapservice.js index 2aa3ec7cdd..ecc384a786 100644 --- a/exec/imapservice.js +++ b/exec/imapservice.js @@ -1441,21 +1441,23 @@ function save_cfg(lck) lock_cfg(); cfgfile.rewind(); for(sub in saved_config) { - scpy = JSON.parse(JSON.stringify(saved_config[sub].Seen)); - s=saved_config[sub].Seen; - delete saved_config[sub].Seen; - cfgfile.iniSetObject(sub,saved_config[sub]); - if(s != undefined) { - // First, try any "binary" Seen compression - b = binify(s); - cfgfile.iniRemoveSection(sub+'.bseen'); - if (b != undefined) - cfgfile.iniSetObject(sub+'.bseen',b); - cfgfile.iniRemoveSection(sub+'.seen'); - if (Object.keys(s).length > 0) - cfgfile.iniSetObject(sub+'.seen',s); + if (saved_config[sub].Seen !== undefined) { + scpy = JSON.parse(JSON.stringify(saved_config[sub].Seen)); + s=saved_config[sub].Seen; + delete saved_config[sub].Seen; + cfgfile.iniSetObject(sub,saved_config[sub]); + if(s != undefined) { + // First, try any "binary" Seen compression + b = binify(s); + cfgfile.iniRemoveSection(sub+'.bseen'); + if (b != undefined) + cfgfile.iniSetObject(sub+'.bseen',b); + cfgfile.iniRemoveSection(sub+'.seen'); + if (Object.keys(s).length > 0) + cfgfile.iniSetObject(sub+'.seen',s); + } + saved_config[sub].Seen=scpy; } - saved_config[sub].Seen=scpy; } cfgfile.flush(); if (lck) -- GitLab