blobmsg: work around false positive gcc -Warray-bounds warnings

Using the return value of blobmsg_name as input argument to strcpy can lead
to warnings like these:

error: 'strcpy' offset 6 from the object at 'cur' is out of the bounds of referenced subobject 'name' with type 'uint8_t[]' {aka 'unsigned char[]'} at offset 6 [-Werror=array-bounds]

Fix this by replacing hdr->name with the equivalent hdr + 1

Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Felix Fietkau 2022-05-15 13:42:56 +02:00
parent cfa372ff8a
commit d2223ef9da

View file

@ -62,7 +62,7 @@ static inline void blobmsg_clear_name(struct blob_attr *attr)
static inline const char *blobmsg_name(const struct blob_attr *attr) static inline const char *blobmsg_name(const struct blob_attr *attr)
{ {
struct blobmsg_hdr *hdr = (struct blobmsg_hdr *) blob_data(attr); struct blobmsg_hdr *hdr = (struct blobmsg_hdr *) blob_data(attr);
return (const char *) hdr->name; return (const char *)(hdr + 1);
} }
static inline int blobmsg_type(const struct blob_attr *attr) static inline int blobmsg_type(const struct blob_attr *attr)