This is an automated email from Gerrit.

"Jan Matyas <mat...@codasip.com>" just uploaded a new patch set to Gerrit, 
which you can find at https://review.openocd.org/c/openocd/+/6927

-- gerrit

commit a9a3569c64ccb7602dafc2bf2c2e2d56a409740b
Author: Jan Matyas <mat...@codasip.com>
Date:   Tue Apr 12 13:33:51 2022 +0200

    target/image: fix - p_flags field in ELF64 segment headers is 64 bits wide
    
    Fixed the reading of p_flags in ELF64 segment headers - that field
    is 64 bits wide.
    
    Change-Id: I053ca57d36efb54b7c638484acd6c7a2fbcbd05a
    Signed-off-by: Jan Matyas <mat...@codasip.com>

diff --git a/src/target/image.c b/src/target/image.c
index eafa73eaae..130ea6c1f9 100644
--- a/src/target/image.c
+++ b/src/target/image.c
@@ -596,7 +596,7 @@ static int image_elf64_read_headers(struct image *image)
                                image->sections[j].base_address = field64(elf,
                                                elf->segments64[i].p_paddr);
                        image->sections[j].private = &elf->segments64[i];
-                       image->sections[j].flags = field32(elf, 
elf->segments64[i].p_flags);
+                       image->sections[j].flags = field64(elf, 
elf->segments64[i].p_flags);
                        j++;
                }
        }
@@ -1168,7 +1168,7 @@ int image_read_section(struct image *image,
        return ERROR_OK;
 }
 
-int image_add_section(struct image *image, target_addr_t base, uint32_t size, 
int flags, uint8_t const *data)
+int image_add_section(struct image *image, target_addr_t base, uint32_t size, 
uint64_t flags, uint8_t const *data)
 {
        struct imagesection *section;
 
diff --git a/src/target/image.h b/src/target/image.h
index 5b5d11f6b9..bf06064ac9 100644
--- a/src/target/image.h
+++ b/src/target/image.h
@@ -52,7 +52,7 @@ enum image_type {
 struct imagesection {
        target_addr_t base_address;
        uint32_t size;
-       int flags;
+       uint64_t flags;
        void *private;          /* private data */
 };
 
@@ -108,7 +108,7 @@ int image_read_section(struct image *image, int section, 
target_addr_t offset,
 void image_close(struct image *image);
 
 int image_add_section(struct image *image, target_addr_t base, uint32_t size,
-               int flags, uint8_t const *data);
+               uint64_t flags, uint8_t const *data);
 
 int image_calculate_checksum(const uint8_t *buffer, uint32_t nbytes,
                uint32_t *checksum);

-- 

Reply via email to