diff options
author | Marti Maria <marti.maria@littlecms.com> | 2021-01-20 19:55:02 +0100 |
---|---|---|
committer | Marti Maria <marti.maria@littlecms.com> | 2021-01-20 19:55:02 +0100 |
commit | 82edde9232fce92f5769cdda2969c5b770a31892 (patch) | |
tree | 57b7e06f03ad213f0e0de45f425289e36cad7b32 | |
parent | a0fc38ddd55a0341dafa7414ac624c1f09271401 (diff) | |
download | lcms2-82edde9232fce92f5769cdda2969c5b770a31892.tar.gz |
prevent segfaults when NULL country or language code
Add codeguard. Thanks to Christian Schmitz for pointing it out
-rw-r--r-- | src/cmsnamed.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/cmsnamed.c b/src/cmsnamed.c index 3796c39..c0595dd 100644 --- a/src/cmsnamed.c +++ b/src/cmsnamed.c @@ -180,12 +180,16 @@ cmsBool AddMLUBlock(cmsMLU* mlu, cmsUInt32Number size, const wchar_t *Block, // Convert from a 3-char code to a cmsUInt16Number. It is done in this way because some // compilers don't properly align beginning of strings - static cmsUInt16Number strTo16(const char str[3]) { - const cmsUInt8Number* ptr8 = (const cmsUInt8Number*)str; - cmsUInt16Number n = (cmsUInt16Number)(((cmsUInt16Number)ptr8[0] << 8) | ptr8[1]); + const cmsUInt8Number* ptr8; + cmsUInt16Number n; + + // For non-existent strings + if (str == NULL) return 0; + ptr8 = (const cmsUInt8Number*)str; + n = (cmsUInt16Number)(((cmsUInt16Number)ptr8[0] << 8) | ptr8[1]); return n; } |