raven-rhel6/rpm/rpm-4.11.x-keep-lua-sources.patch
2024-02-21 20:14:44 +06:00

33 lines
1.2 KiB
Diff

From 3c2c31b1ff7e2ebd2e5108f89ed8b2bb84bc212c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nikola=20Forr=C3=B3?= <nforro@redhat.com>
Date: Tue, 5 Dec 2017 11:20:09 +0100
Subject: [PATCH] Only destroy lua tables if there are no BASpecs left
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Lua tables "sources" and "patches" are created in newSpec() and destroyed
in rpmSpecFree().
But in case BuildArch processing takes place in parseSpec(), the function
returns successfully but the tables are already destroyed by rpmSpecFree()
that has been called for the original spec.
Signed-off-by: Nikola Forró <nforro@redhat.com>
--- current/build/spec.c.orig 2018-03-21 01:40:57.713558133 +0100
+++ current/build/spec.c 2018-03-21 01:41:37.712667019 +0100
@@ -514,9 +514,12 @@
spec->cookie = _free(spec->cookie);
#ifdef WITH_LUA
+ // only destroy lua tables if there are no BASpecs left
+ if (spec->recursing || spec->BACount == 0) {
rpmlua lua = NULL; /* global state */
rpmluaDelVar(lua, "patches");
- rpmluaDelVar(lua, "sources");
+ rpmluaDelVar(lua, "sources");
+ }
#endif
spec->sources = freeSources(spec->sources);