Skip to content

Commit 0563ea0

Browse files
committed
Fixed null-pointer dereference in lStr_cmp() <- LVZipArc::OpenStream().
1 parent b6e08b5 commit 0563ea0

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

crengine/src/lvstring.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,12 @@ void lStr_memset(lChar8 * dst, lChar8 value, int count)
497497

498498
int lStr_cmp(const lChar16 * dst, const lChar16 * src)
499499
{
500+
if (dst == src)
501+
return 0;
502+
if (!dst)
503+
return -1;
504+
else if (!src)
505+
return 1;
500506
while ( *dst == *src)
501507
{
502508
if (! *dst )
@@ -512,6 +518,12 @@ int lStr_cmp(const lChar16 * dst, const lChar16 * src)
512518

513519
int lStr_cmp(const lChar8 * dst, const lChar8 * src)
514520
{
521+
if (dst == src)
522+
return 0;
523+
if (!dst)
524+
return -1;
525+
else if (!src)
526+
return 1;
515527
while ( *dst == *src)
516528
{
517529
if (! *dst )
@@ -527,6 +539,12 @@ int lStr_cmp(const lChar8 * dst, const lChar8 * src)
527539

528540
int lStr_cmp(const lChar16 * dst, const lChar8 * src)
529541
{
542+
if (!dst && !src)
543+
return 0;
544+
if (!dst)
545+
return -1;
546+
else if (!src)
547+
return 1;
530548
while ( *dst == (lChar16)*src)
531549
{
532550
if (! *dst )

0 commit comments

Comments
 (0)