Skip to content

Commit 1524f85

Browse files
wargioXVilka
authored andcommitted
fix #2969 - oob write (1 byte) in dex.c
1 parent 7211dfb commit 1524f85

File tree

1 file changed

+7
-1
lines changed
  • librz/bin/format/dex

1 file changed

+7
-1
lines changed

librz/bin/format/dex/dex.c

+7-1
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,10 @@ static DexString *dex_string_new(RzBuffer *buf, ut64 offset, st64 *pread) {
8181
DexString *string = NULL;
8282

8383
read = rz_buf_uleb128(buf, &size);
84+
if (UT64_ADD_OVFCHK(size, 1)) {
85+
return NULL;
86+
}
87+
8488
data = malloc(size + 1);
8589
if (!data || rz_buf_read(buf, (ut8 *)data, size) != size) {
8690
free(data);
@@ -905,7 +909,9 @@ static char *dex_resolve_library(const char *library) {
905909
}
906910
char *demangled = strdup(library + 1);
907911
rz_str_replace_ch(demangled, '/', '.', 1);
908-
demangled[strlen(demangled) - 1] = 0;
912+
if (RZ_STR_ISNOTEMPTY(demangled)) {
913+
demangled[strlen(demangled) - 1] = 0;
914+
}
909915
return demangled;
910916
}
911917

0 commit comments

Comments
 (0)