re: fs/ntfs3: Add option "nocase"
From: Colin King (gmail)
Date: Tue Oct 04 2022 - 17:22:42 EST
Hi,
Static analysis with clang scan build has detected an issue in the
following commit:
commit a3a956c78efaa202b1d75190136671cf6e87bfbe
Author: Konstantin Komarov <almaz.alexandrovich@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 23 12:42:18 2022 +0300
fs/ntfs3: Add option "nocase"
The issue is as follows in fs/ntfs3/index.c in function ntfs_d_compare:
/* First try fast implementation. */
for (;;) {
if (!lm--) {
ret = len1 == len2 ? 0 : 1;
goto out;
}
if ((c1 = *n1++) == (c2 = *n2++))
continue;
if (c1 >= 0x80 || c2 >= 0x80)
break;
if (toupper(c1) != toupper(c2)) {
ret = 1;
goto out;
}
}
...
...
out:
__putname(uni1);
return ret;
}
The exits in the for-loop via label out are ending up with __putname()
being called on an uninitialized uni1 pointer.
Colin