From ada8b33ac2d6b564a410b1dd9302c4dbb2d0ac50 Mon Sep 17 00:00:00 2001 From: "dveditz%netscape.com" Date: Thu, 14 Sep 2000 20:12:59 +0000 Subject: [PATCH] bug 51056 handle unreadable prefs file, patch from gemal@gemal.dk, r=dveditz@netscape.com --- modules/libpref/src/init/all.js | 1 + modules/libpref/src/prefapi.c | 25 ++++++++++++++++--------- modules/libpref/src/prefapi.cpp | 25 ++++++++++++++++--------- 3 files changed, 33 insertions(+), 18 deletions(-) diff --git a/modules/libpref/src/init/all.js b/modules/libpref/src/init/all.js index 2481593024b..77455f94793 100644 --- a/modules/libpref/src/init/all.js +++ b/modules/libpref/src/init/all.js @@ -212,6 +212,7 @@ pref("javascript.enabled", true); pref("javascript.allow.mailnews", false); pref("javascript.allow.signing", true); pref("javascript.reflect_preferences", false); // for PE +//pref("javascript.options.strict", true); // advanced prefs pref("advanced.always_load_images", true); diff --git a/modules/libpref/src/prefapi.c b/modules/libpref/src/prefapi.c index 8174e976de3..035ad144c61 100644 --- a/modules/libpref/src/prefapi.c +++ b/modules/libpref/src/prefapi.c @@ -289,17 +289,24 @@ PrefResult pref_OpenFile( if (readBuf) { fileLength = fread(readBuf, sizeof(char), fileLength, fp); + if (fileLength == 0) + { + ok = PREF_ERROR; + } + else + { - if ( verifyHash && !pref_VerifyLockFile(readBuf, (long) fileLength)) - { - ok = PREF_BAD_LOCKFILE; + if ( verifyHash && !pref_VerifyLockFile(readBuf, (long) fileLength)) + { + ok = PREF_BAD_LOCKFILE; + } + else if (PREF_EvaluateConfigScript(readBuf, fileLength, + filename, bGlobalContext, PR_FALSE, skipFirstLine )) + { + ok = PREF_NOERROR; + } + free(readBuf); } - else if (PREF_EvaluateConfigScript(readBuf, fileLength, - filename, bGlobalContext, PR_FALSE, skipFirstLine )) - { - ok = PREF_NOERROR; - } - free(readBuf); } fclose(fp); diff --git a/modules/libpref/src/prefapi.cpp b/modules/libpref/src/prefapi.cpp index 8174e976de3..035ad144c61 100644 --- a/modules/libpref/src/prefapi.cpp +++ b/modules/libpref/src/prefapi.cpp @@ -289,17 +289,24 @@ PrefResult pref_OpenFile( if (readBuf) { fileLength = fread(readBuf, sizeof(char), fileLength, fp); + if (fileLength == 0) + { + ok = PREF_ERROR; + } + else + { - if ( verifyHash && !pref_VerifyLockFile(readBuf, (long) fileLength)) - { - ok = PREF_BAD_LOCKFILE; + if ( verifyHash && !pref_VerifyLockFile(readBuf, (long) fileLength)) + { + ok = PREF_BAD_LOCKFILE; + } + else if (PREF_EvaluateConfigScript(readBuf, fileLength, + filename, bGlobalContext, PR_FALSE, skipFirstLine )) + { + ok = PREF_NOERROR; + } + free(readBuf); } - else if (PREF_EvaluateConfigScript(readBuf, fileLength, - filename, bGlobalContext, PR_FALSE, skipFirstLine )) - { - ok = PREF_NOERROR; - } - free(readBuf); } fclose(fp);