33 lines
1.2 KiB
Diff
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);
|