summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/nss-db/files/nss-db-2.2.3_pre1-root-upgrade-only.patch')
-rw-r--r--sys-libs/nss-db/files/nss-db-2.2.3_pre1-root-upgrade-only.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/sys-libs/nss-db/files/nss-db-2.2.3_pre1-root-upgrade-only.patch b/sys-libs/nss-db/files/nss-db-2.2.3_pre1-root-upgrade-only.patch
new file mode 100644
index 000000000000..e2db2342e2a4
--- /dev/null
+++ b/sys-libs/nss-db/files/nss-db-2.2.3_pre1-root-upgrade-only.patch
@@ -0,0 +1,27 @@
+diff -NuarwbB nss_db-2.2.3pre1.orig/src/db-compat.c nss_db-2.2.3pre1/src/db-compat.c
+--- nss_db-2.2.3pre1.orig/src/db-compat.c 2005-06-07 00:08:39.000000000 -0700
++++ nss_db-2.2.3pre1/src/db-compat.c 2005-06-07 00:53:00.000000000 -0700
+@@ -20,6 +20,9 @@
+ #include <assert.h>
+ #include <db.h>
+ #include <fcntl.h>
++#include <unistd.h>
++#include <sys/types.h>
++
+
+ #if DB_VERSION_MAJOR > 2
+
+@@ -39,8 +42,13 @@
+ if (err)
+ return err;
+
++ uid_t uid = geteuid();
++
++ if(uid == 0) {
+ /* Make sure we upgrade, in case this is an older database */
++ /* However we need root access to do so */
+ db->upgrade(db, file, 0);
++ }
+
+ err = db->open (db, NULL, file, NULL, type, flags, mode);
+ if (err)