Message ID | 20230223231755.81633-2-philmd@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | dump: Make most of it target agnostic (build once) | expand |
On 2/23/23 13:17, Philippe Mathieu-Daudé wrote: > All uses of tswap in that file are wrong, and should be using > cpu_to_dumpN, which correctly tests the endianness of the output. > > Suggested-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > dump/dump.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
On 24/02/2023 00.17, Philippe Mathieu-Daudé wrote: > All uses of tswap in that file are wrong, and should be using > cpu_to_dumpN, which correctly tests the endianness of the output. > > Suggested-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > dump/dump.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/dump/dump.c b/dump/dump.c > index 279b07f09b..7101169ecb 100644 > --- a/dump/dump.c > +++ b/dump/dump.c > @@ -907,13 +907,13 @@ static void get_note_sizes(DumpState *s, const void *note, > if (dump_is_64bit(s)) { > const Elf64_Nhdr *hdr = note; > note_head_sz = sizeof(Elf64_Nhdr); > - name_sz = tswap64(hdr->n_namesz); > - desc_sz = tswap64(hdr->n_descsz); > + name_sz = cpu_to_dump64(s, hdr->n_namesz); > + desc_sz = cpu_to_dump64(s, hdr->n_descsz); > } else { > const Elf32_Nhdr *hdr = note; > note_head_sz = sizeof(Elf32_Nhdr); > - name_sz = tswap32(hdr->n_namesz); > - desc_sz = tswap32(hdr->n_descsz); > + name_sz = cpu_to_dump32(s, hdr->n_namesz); > + desc_sz = cpu_to_dump32(s, hdr->n_descsz); > } Those tswaps looked suspiciuous indeed. Reviewed-by: Thomas Huth <thuth@redhat.com>
diff --git a/dump/dump.c b/dump/dump.c index 279b07f09b..7101169ecb 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -907,13 +907,13 @@ static void get_note_sizes(DumpState *s, const void *note, if (dump_is_64bit(s)) { const Elf64_Nhdr *hdr = note; note_head_sz = sizeof(Elf64_Nhdr); - name_sz = tswap64(hdr->n_namesz); - desc_sz = tswap64(hdr->n_descsz); + name_sz = cpu_to_dump64(s, hdr->n_namesz); + desc_sz = cpu_to_dump64(s, hdr->n_descsz); } else { const Elf32_Nhdr *hdr = note; note_head_sz = sizeof(Elf32_Nhdr); - name_sz = tswap32(hdr->n_namesz); - desc_sz = tswap32(hdr->n_descsz); + name_sz = cpu_to_dump32(s, hdr->n_namesz); + desc_sz = cpu_to_dump32(s, hdr->n_descsz); } if (note_head_size) {
All uses of tswap in that file are wrong, and should be using cpu_to_dumpN, which correctly tests the endianness of the output. Suggested-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- dump/dump.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)