Re: [PATCH] block: fix part_pack_uuid() build error

From: Randy Dunlap
Date: Sun Feb 24 2013 - 15:28:17 EST


On 02/24/13 07:15, Mimi Zohar wrote:
> Fix a build error when CONFIG_BLOCK is not enabled, by defining
> a wrapper called blk_part_pack_uuid(). The wrapper returns
> -EINVAL, when CONFIG_BLOCK is not defined.
>
> security/integrity/ima/ima_policy.c:538:4: error: implicit declaration
> of function 'part_pack_uuid' [-Werror=implicit-function-declaration]
>
> Changleog v1:
> - rename ima_part_pack_uuid() to blk_part_pack_uuid()
> - resolve scripts/checkpatch.pl warnings
> Changelog v0:
> - fix UUID scripts/Lindent msgs
>
> Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Reported-by: David Rientjes <rientjes@xxxxxxxxxx>
> Signed-off-by: Mimi Zohar <zohar@xxxxxxxxxxxxxxxxxx>

Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>

Thanks.

> ---
> include/linux/genhd.h | 10 ++++++++++
> security/integrity/ima/ima_policy.c | 11 ++++++-----
> 2 files changed, 16 insertions(+), 5 deletions(-)
>
> diff --git a/include/linux/genhd.h b/include/linux/genhd.h
> index 79b8bba..9f3c275 100644
> --- a/include/linux/genhd.h
> +++ b/include/linux/genhd.h
> @@ -231,6 +231,12 @@ static inline void part_pack_uuid(const u8 *uuid_str, u8 *to)
> }
> }
>
> +static inline int blk_part_pack_uuid(const u8 *uuid_str, u8 *to)
> +{
> + part_pack_uuid(uuid_str, to);
> + return 0;
> +}
> +
> static inline int disk_max_parts(struct gendisk *disk)
> {
> if (disk->flags & GENHD_FL_EXT_DEVT)
> @@ -718,6 +724,10 @@ static inline dev_t blk_lookup_devt(const char *name, int partno)
> return devt;
> }
>
> +static inline int blk_part_pack_uuid(const u8 *uuid_str, u8 *to)
> +{
> + return -EINVAL;
> +}
> #endif /* CONFIG_BLOCK */
>
> #endif /* _LINUX_GENHD_H */
> diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
> index b27535a..399433a 100644
> --- a/security/integrity/ima/ima_policy.c
> +++ b/security/integrity/ima/ima_policy.c
> @@ -176,7 +176,7 @@ static bool ima_match_rules(struct ima_rule_entry *rule,
> && rule->fsmagic != inode->i_sb->s_magic)
> return false;
> if ((rule->flags & IMA_FSUUID) &&
> - memcmp(rule->fsuuid, inode->i_sb->s_uuid, sizeof(rule->fsuuid)))
> + memcmp(rule->fsuuid, inode->i_sb->s_uuid, sizeof(rule->fsuuid)))
> return false;
> if ((rule->flags & IMA_UID) && !uid_eq(rule->uid, cred->uid))
> return false;
> @@ -530,14 +530,15 @@ static int ima_parse_rule(char *rule, struct ima_rule_entry *entry)
> ima_log_string(ab, "fsuuid", args[0].from);
>
> if (memchr_inv(entry->fsuuid, 0x00,
> - sizeof(entry->fsuuid))) {
> + sizeof(entry->fsuuid))) {
> result = -EINVAL;
> break;
> }
>
> - part_pack_uuid(args[0].from, entry->fsuuid);
> - entry->flags |= IMA_FSUUID;
> - result = 0;
> + result = blk_part_pack_uuid(args[0].from,
> + entry->fsuuid);
> + if (!result)
> + entry->flags |= IMA_FSUUID;
> break;
> case Opt_uid:
> ima_log_string(ab, "uid", args[0].from);
>


--
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/