b[i] = *p;
++i, ++p;
}
- if (*p != ';' || i == ENTITY_MAX_LEN)
+ if (*p != ';' || i == 0 || i == ENTITY_MAX_LEN)
return NULL;
b[i] = '\0';
if (strlen(b) > 0)
c = g_ascii_strtoll (b, NULL, (hex ? 16 : 10));
- if (c >= 0 && c <= 31)
+ if (c < 32)
/* An unprintable character; return the Unicode replacement symbol */
return g_strdup("\xef\xbf\xbd");