Snap for 11889377 from 2aeb6eeb5d2b047ae0fd7b20c82397e1cb52a0a1 to 24Q3-release
Change-Id: I249bc15bfeace5786f6bf6bad286d9c810126dce
diff --git a/apf_run.c b/apf_run.c
index 4c63767..c2df5c1 100644
--- a/apf_run.c
+++ b/apf_run.c
@@ -365,13 +365,18 @@
}
// Combine the program and data into the unified APF buffer.
- if (data) {
- program = realloc(program, program_len + data_len);
- memcpy(program + program_len, data, data_len);
- free(data);
+ uint32_t ram_len = program_len + data_len;
+ if (use_apf_v6_interpreter) {
+ ram_len += 3;
+ ram_len &= ~3;
+ if (data_len < 20) ram_len += 20;
}
- uint32_t ram_len = program_len + data_len;
+ if (data) {
+ program = realloc(program, ram_len);
+ memcpy(program + ram_len - data_len, data, data_len);
+ free(data);
+ }
if (filename)
file_handler(use_apf_v6_interpreter, program, program_len, ram_len,
@@ -382,11 +387,11 @@
if (data_len) {
printf("Data: ");
- print_hex(program + program_len, data_len);
+ print_hex(program + ram_len - data_len, data_len);
printf("\n");
if (print_counter_enabled) {
printf("APF packet counters: \n");
- print_counter(program + program_len, data_len);
+ print_counter(program + ram_len - data_len, data_len);
}
}