hugin: cherrypick fix for segfault on empty XDG_DATA_DIR
Hugin segfaults if the environment variable XDG_DATA_DIR is unset (rather than being the empty string). Upstream has committed a fix in edfddc6070ca6d4223d359fb4b38273a5aed2f2d but has not released it (hugin releases are *very* infrequent). Let's cherry-pick the fix since it might be a while before they manage another release.
This commit is contained in:
parent
7b81ec9be5
commit
ccdfaa8de7
@ -43,6 +43,12 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "sha256-BHrqin+keESzTvJ8GdO2l+hJOdyx/bvrLCBGIbZu6tk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# committed upstream but unreleased:
|
||||
# https://sourceforge.net/p/hugin/hugin/ci/edfddc6070ca6d4223d359fb4b38273a5aed2f2d
|
||||
./dont-crash-if-XDG_DATA_DIRS-not-set-edfddc6070ca6d4223d359fb4b38273a5aed2f2d.patch
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
cairo
|
||||
|
@ -0,0 +1,14 @@
|
||||
--- a/src/hugin_base/hugin_utils/utils.cpp 2022-12-05 22:19:26.873574924 -0800
|
||||
+++ b/src/hugin_base/hugin_utils/utils.cpp 2022-12-05 22:19:09.069575641 -0800
|
||||
@@ -472,9 +472,9 @@
|
||||
#else
|
||||
#ifdef USE_XDG_DIRS
|
||||
char *xdgDataDir = getenv("XDG_DATA_HOME");
|
||||
- if (strlen(xdgDataDir) == 0)
|
||||
+ if (xdgDataDir == NULL || strlen(xdgDataDir) == 0)
|
||||
{
|
||||
- // no XDG_DATA_HOME enviroment variable set
|
||||
+ // no XDG_DATA_HOME enviroment variable set or empty variable
|
||||
// use $HOME/.local/share instead
|
||||
const std::string homeDir = GetHomeDir();
|
||||
if (homeDir.empty())
|
Loading…
Reference in New Issue
Block a user