diff options
author | Yuyang Huang <yuyanghuang@google.com> | 2024-05-24 23:54:35 +0900 |
---|---|---|
committer | Yuyang Huang <yuyanghuang@google.com> | 2024-05-24 23:55:22 +0900 |
commit | c01aa55db9a69cf4776396f665cb7bffb6f08455 (patch) | |
tree | 113f1762da493579eaa4209619949d644c31e8d0 | |
parent | e0ffcb902ce7153e7d43397cd041c7a2a1ff5dc4 (diff) | |
download | apf-master.tar.gz |
Test: TH
Change-Id: I1032ea432a93fd2846aa6d4e6f6a1836c8e3b6d4
-rw-r--r-- | apf_run.c | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -365,14 +365,19 @@ int main(int argc, char* argv[]) { } // Combine the program and data into the unified APF buffer. + 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; + } + if (data) { - program = realloc(program, program_len + data_len); - memcpy(program + program_len, data, data_len); + program = realloc(program, ram_len); + memcpy(program + ram_len - data_len, data, data_len); free(data); } - uint32_t ram_len = program_len + data_len; - if (filename) file_handler(use_apf_v6_interpreter, program, program_len, ram_len, filename, filter_age); @@ -382,11 +387,11 @@ int main(int argc, char* argv[]) { 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); } } |