Skip to content

Commit

Permalink
Merge tag 'ASB-2024-11-05_4.19-stable' of https://android.googlesourc…
Browse files Browse the repository at this point in the history
…e.com/kernel/common into android13-4.19-kona

https://source.android.com/docs/security/bulletin/2024-11-01
CVE-2024-36978
CVE-2024-46740

* tag 'ASB-2024-11-05_4.19-stable' of https://android.googlesource.com/kernel/common:
  UPSTREAM: unicode: Don't special case ignorable code points

Change-Id: Id399c005e00348a9c65718c72c32260a21303f2f
  • Loading branch information
mikeNG committed Nov 7, 2024
2 parents 532750c + 5bad799 commit c8bfb91
Show file tree
Hide file tree
Showing 2 changed files with 3,346 additions and 3,427 deletions.
70 changes: 0 additions & 70 deletions fs/unicode/mkutf8data.c
Original file line number Diff line number Diff line change
Expand Up @@ -2230,75 +2230,6 @@ static void nfdicf_init(void)
file_fail(fold_name);
}

static void ignore_init(void)
{
FILE *file;
unsigned int unichar;
unsigned int first;
unsigned int last;
unsigned int *um;
int count;
int ret;

if (verbose > 0)
printf("Parsing %s\n", prop_name);
file = fopen(prop_name, "r");
if (!file)
open_fail(prop_name, errno);
assert(file);
count = 0;
while (fgets(line, LINESIZE, file)) {
ret = sscanf(line, "%X..%X ; %s # ", &first, &last, buf0);
if (ret == 3) {
if (strcmp(buf0, "Default_Ignorable_Code_Point"))
continue;
if (!utf32valid(first) || !utf32valid(last))
line_fail(prop_name, line);
for (unichar = first; unichar <= last; unichar++) {
free(unicode_data[unichar].utf32nfdi);
um = malloc(sizeof(unsigned int));
*um = 0;
unicode_data[unichar].utf32nfdi = um;
free(unicode_data[unichar].utf32nfdicf);
um = malloc(sizeof(unsigned int));
*um = 0;
unicode_data[unichar].utf32nfdicf = um;
count++;
}
if (verbose > 1)
printf(" %X..%X Default_Ignorable_Code_Point\n",
first, last);
continue;
}
ret = sscanf(line, "%X ; %s # ", &unichar, buf0);
if (ret == 2) {
if (strcmp(buf0, "Default_Ignorable_Code_Point"))
continue;
if (!utf32valid(unichar))
line_fail(prop_name, line);
free(unicode_data[unichar].utf32nfdi);
um = malloc(sizeof(unsigned int));
*um = 0;
unicode_data[unichar].utf32nfdi = um;
free(unicode_data[unichar].utf32nfdicf);
um = malloc(sizeof(unsigned int));
*um = 0;
unicode_data[unichar].utf32nfdicf = um;
if (verbose > 1)
printf(" %X Default_Ignorable_Code_Point\n",
unichar);
count++;
continue;
}
}
fclose(file);

if (verbose > 0)
printf("Found %d entries\n", count);
if (count == 0)
file_fail(prop_name);
}

static void corrections_init(void)
{
FILE *file;
Expand Down Expand Up @@ -3396,7 +3327,6 @@ int main(int argc, char *argv[])
ccc_init();
nfdi_init();
nfdicf_init();
ignore_init();
corrections_init();
hangul_decompose();
nfdi_decompose();
Expand Down
Loading

0 comments on commit c8bfb91

Please sign in to comment.