|
|
ee825d |
--- ./lib/backend/ndb/glue.c.orig 2021-01-05 15:36:03.097744355 +0000
|
|
|
ee825d |
+++ ./lib/backend/ndb/glue.c 2021-01-07 10:28:58.656228804 +0000
|
|
|
ee825d |
@@ -311,12 +311,13 @@ static void setdata(dbiCursor dbc, unsi
|
|
|
ee825d |
|
|
|
ee825d |
static rpmRC ndb_pkgdbPut(dbiIndex dbi, dbiCursor dbc, unsigned int *hdrNum, unsigned char *hdrBlob, unsigned int hdrLen)
|
|
|
ee825d |
{
|
|
|
ee825d |
+ struct ndbEnv_s *ndbenv = dbc->dbi->dbi_rpmdb->db_dbenv;
|
|
|
ee825d |
unsigned int hnum = *hdrNum;
|
|
|
ee825d |
int rc = RPMRC_OK;
|
|
|
ee825d |
|
|
|
ee825d |
if (hnum == 0) {
|
|
|
ee825d |
rc = rpmpkgNextPkgIdx(dbc->dbi->dbi_db, &hnum);
|
|
|
ee825d |
- if (!rc)
|
|
|
ee825d |
+ if (!rc && ndbenv->hdrNum == hnum)
|
|
|
ee825d |
setdata(dbc, hnum, 0, 0);
|
|
|
ee825d |
}
|
|
|
ee825d |
|
|
|
ee825d |
@@ -325,7 +326,8 @@ static rpmRC ndb_pkgdbPut(dbiIndex dbi,
|
|
|
ee825d |
|
|
|
ee825d |
if (!rc) {
|
|
|
ee825d |
dbc->hdrNum = hnum;
|
|
|
ee825d |
- setdata(dbc, hnum, 0, 0);
|
|
|
ee825d |
+ if (ndbenv->hdrNum == hnum)
|
|
|
ee825d |
+ setdata(dbc, hnum, 0, 0);
|
|
|
ee825d |
*hdrNum = hnum;
|
|
|
ee825d |
}
|
|
|
ee825d |
return rc;
|
|
|
ee825d |
@@ -333,8 +335,10 @@ static rpmRC ndb_pkgdbPut(dbiIndex dbi,
|
|
|
ee825d |
|
|
|
ee825d |
static rpmRC ndb_pkgdbDel(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum)
|
|
|
ee825d |
{
|
|
|
ee825d |
+ struct ndbEnv_s *ndbenv = dbc->dbi->dbi_rpmdb->db_dbenv;
|
|
|
ee825d |
dbc->hdrNum = 0;
|
|
|
ee825d |
- setdata(dbc, 0, 0, 0);
|
|
|
ee825d |
+ if (ndbenv->hdrNum == hdrNum)
|
|
|
ee825d |
+ setdata(dbc, 0, 0, 0);
|
|
|
ee825d |
return rpmpkgDel(dbc->dbi->dbi_db, hdrNum);
|
|
|
ee825d |
}
|
|
|
ee825d |
|