diff --git a/libs/lensfun/lens.cpp b/libs/lensfun/lens.cpp index 52b76658..b8430609 100644 --- a/libs/lensfun/lens.cpp +++ b/libs/lensfun/lens.cpp @@ -66,9 +66,10 @@ lfLens::lfLens (const lfLens &other) Mounts = NULL; MountNames.clear(); const char* const* otherMounts = other.GetMountNames(); - for (int i = 0; otherMounts[i]; i++) - AddMount(otherMounts[i]); - + if (otherMounts) { + for (int i = 0; otherMounts[i]; i++) + AddMount(otherMounts[i]); + } for (auto *calibset : other.Calibrations) Calibrations.push_back(new lfLensCalibrationSet(*calibset)); @@ -96,9 +97,10 @@ lfLens &lfLens::operator = (const lfLens &other) Mounts = NULL; MountNames.clear(); const char* const* otherMounts = other.GetMountNames(); - for (int i = 0; otherMounts[i]; i++) - AddMount(otherMounts[i]); - + if (otherMounts) { + for (int i = 0; otherMounts[i]; i++) + AddMount(otherMounts[i]); + } for (auto *calibset : Calibrations) delete calibset; Calibrations.clear(); diff --git a/libs/lensfun/mount.cpp b/libs/lensfun/mount.cpp index bd875baa..86f667cb 100644 --- a/libs/lensfun/mount.cpp +++ b/libs/lensfun/mount.cpp @@ -28,8 +28,10 @@ lfMount::lfMount (const lfMount &other) MountCompat.clear(); const char* const* otherMounts = other.GetCompats(); - for (int i = 0; otherMounts[i]; i++) - AddCompat(otherMounts[i]); + if (otherMounts) { + for (int i = 0; otherMounts[i]; i++) + AddCompat(otherMounts[i]); + } } lfMount &lfMount::operator = (const lfMount &other) @@ -40,9 +42,10 @@ lfMount &lfMount::operator = (const lfMount &other) MountCompat.clear(); const char* const* otherMounts = other.GetCompats(); - for (int i = 0; otherMounts[i]; i++) - AddCompat(otherMounts[i]); - + if (otherMounts) { + for (int i = 0; otherMounts[i]; i++) + AddCompat(otherMounts[i]); + } return *this; }