Michael Schröder
476eac8c55
OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=275
34 lines
1.0 KiB
Diff
34 lines
1.0 KiB
Diff
--- ./lib/rpmdb.c.orig 2013-06-10 15:55:10.000000000 +0000
|
|
+++ ./lib/rpmdb.c 2013-07-12 11:28:22.000000000 +0000
|
|
@@ -730,10 +730,12 @@ int rpmdbClose(rpmdb db)
|
|
{
|
|
rpmdb * prev, next;
|
|
int rc = 0;
|
|
+ int dbmode;
|
|
|
|
if (db == NULL)
|
|
goto exit;
|
|
|
|
+ dbmode = db->db_mode;
|
|
(void) rpmdbUnlink(db);
|
|
|
|
if (db->nrefs > 0)
|
|
@@ -761,7 +763,7 @@ int rpmdbClose(rpmdb db)
|
|
|
|
db = _free(db);
|
|
|
|
- if (rpmdbRock == NULL) {
|
|
+ if (rpmdbRock == NULL && (dbmode & (O_RDWR|O_WRONLY)) != 0) {
|
|
(void) rpmsqEnable(-SIGHUP, NULL);
|
|
(void) rpmsqEnable(-SIGINT, NULL);
|
|
(void) rpmsqEnable(-SIGTERM, NULL);
|
|
@@ -830,7 +832,7 @@ static int openDatabase(const char * pre
|
|
/* Try to ensure db home exists, error out if we can't even create */
|
|
rc = rpmioMkpath(rpmdbHome(db), 0755, getuid(), getgid());
|
|
if (rc == 0) {
|
|
- if (rpmdbRock == NULL) {
|
|
+ if (rpmdbRock == NULL && (db->db_mode & (O_RDWR|O_WRONLY)) != 0) {
|
|
(void) rpmsqEnable(SIGHUP, NULL);
|
|
(void) rpmsqEnable(SIGINT, NULL);
|
|
(void) rpmsqEnable(SIGTERM, NULL);
|