--- core/Common/3dParty/html/katana-parser/src/foundation.c.orig 2025-12-04 03:36:03 UTC
+++ core/Common/3dParty/html/katana-parser/src/foundation.c
@@ -52,6 +52,7 @@
void katana_string_append_characters(struct KatanaInternalParser* parser,
const char* str, KatanaParserString* output)
{
+ if (NULL == str) return;
size_t len = strlen(str);
maybe_resize_string(parser, len, output);
memcpy(output->data + output->length, str, len);
@@ -62,6 +63,7 @@
const char* str,
KatanaParserString* output)
{
+ if (NULL == str) return;
size_t len = strlen(str);
size_t new_length = output->length + len;
char* new_data = katana_parser_allocate(parser, new_length);
@@ -83,7 +85,9 @@
bool katana_string_has_prefix(const char* str, const char* prefix)
{
+ if (NULL == prefix) return false;
size_t pre_len = strlen(prefix);
+ if (NULL == prefix) return false;
size_t str_len = strlen(str);
return pre_len <= str_len && strncasecmp(prefix, str, pre_len);
}
--- core/Common/3dParty/html/katana-parser/src/parser.c.orig 2025-12-04 03:15:29 UTC
+++ core/Common/3dParty/html/katana-parser/src/parser.c
@@ -39,7 +39,7 @@
//#define assert(x)
#define breakpoint
-#define KATANA_PARSER_STRING(literal) (KatanaParserString){ literal, sizeof(literal) - 1 }
+#define KATANA_PARSER_STRING(literal) { literal, sizeof(literal) - 1 }
typedef void (*KatanaArrayDeallocator)(KatanaParser* parser, void* e);
@@ -1275,7 +1275,7 @@
yyloc->last_line,
yyloc->last_column,
error,
- katanaget_text(parser->scanner));
+ "error");
YYSTYPE * s = katanaget_lval(parser->scanner);
@@ -1293,7 +1293,7 @@
e->last_line = yyloc->last_line;
e->last_column = yyloc->last_column;
snprintf(e->message, KATANA_ERROR_MESSAGE_SIZE, "%s at %s", error,
- katanaget_text(parser->scanner));
+ "error");
katana_array_add(parser, e, &(parser->output->errors));
}
--- core/Common/3dParty/html/katana-parser/src/tokenizer.c.orig 2025-12-04 03:15:29 UTC
+++ core/Common/3dParty/html/katana-parser/src/tokenizer.c
@@ -288,7 +288,7 @@
#endif // #if KATANA_FELX_DEBUG
#endif // #ifdef KATANA_FELX_DEBUG
-inline bool katana_is_html_space(char c)
+static inline bool katana_is_html_space(char c)
{
return c <= ' ' && (c == ' ' || c == '\n' || c == '\t' || c == '\r' || c == '\f');
}