Skip to content

Commit df5d663

Browse files
committed
fix read invalid byte for memcmp header
1 parent 93b5023 commit df5d663

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

ext/image_loader/psx_image_modules.c

+6-4
Original file line numberDiff line numberDiff line change
@@ -169,14 +169,16 @@ int psx_image_register_operator(const char* type, const ps_byte* header_magic,
169169

170170
list_for_each(&(mgr->coders), ptr) {
171171
entry = (struct image_coder_node*)ptr;
172-
len = entry->magic_len > magic_len ? entry->magic_len : magic_len;
173-
if (entry && (memcmp(entry->magic_hdr, header_magic, len) == 0) && (magic_offset == entry->magic_offset))
174-
break;
172+
if (entry && entry->magic_len == magic_len) {
173+
if ((memcmp(entry->magic_hdr, header_magic, magic_len) == 0) && (magic_offset == entry->magic_offset)) {
174+
break;
175+
}
176+
}
175177
entry = NULL;
176178
}
177179

178180
if (entry) {
179-
struct image_coder_node * new_entry = (struct image_coder_node*)calloc(1, sizeof(struct image_coder_node));
181+
struct image_coder_node* new_entry = (struct image_coder_node*)calloc(1, sizeof(struct image_coder_node));
180182
new_entry->magic_hdr = copy_magic((const char*)header_magic, magic_len);
181183
new_entry->magic_offset = magic_offset;
182184
new_entry->magic_len = magic_len;

0 commit comments

Comments
 (0)