mirror of
https://github.com/radareorg/radare2.git
synced 2025-02-08 06:47:33 +00:00
Fix oobread in charset.c
This commit is contained in:
parent
6de47ca9f8
commit
d640634666
@ -122,11 +122,13 @@ R_API size_t r_charset_decode_str(RCharset *rc, ut8 *out, size_t out_len, const
|
||||
//zero terminate the string
|
||||
snprintf (k, sizeof (k), "%c", ch_in);//snprintf (k, sizeof (k), "0x%02x", ch_in);
|
||||
char *v = sdb_get (rc->db_char_to_hex, k, 0);
|
||||
memmove(v, v+2, strlen (v));
|
||||
if (strlen (v) < 2) {
|
||||
continue;
|
||||
}
|
||||
|
||||
//convert to ascii
|
||||
char str_hx[32];
|
||||
snprintf (str_hx, sizeof (str_hx), "%c", (char) strtol( v, 0, 16));
|
||||
snprintf (str_hx, sizeof (str_hx), "%c", (char) strtol( v+2, 0, 16));
|
||||
const char *ret = r_str_get_fail (str_hx, "?");
|
||||
strcpy (o, ret);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user