[libvirt] [PATCH] build: use correct printf types for uid/gid

Michal Privoznik mprivozn at redhat.com
Tue Oct 23 09:25:19 UTC 2012


On 22.10.2012 22:49, Eric Blake wrote:
> Fixes a build failure on cygwin:
> cc1: warnings being treated as errors
> security/security_dac.c: In function 'virSecurityDACSetProcessLabel':
> security/security_dac.c:862:5: error: format '%u' expects type 'unsigned int', but argument 7 has type 'uid_t' [-Wformat]
> security/security_dac.c:862:5: error: format '%u' expects type 'unsigned int', but argument 8 has type 'gid_t' [-Wformat]
> 
> * src/security/security_dac.c (virSecurityDACSetProcessLabel)
> (virSecurityDACGenLabel): Use proper casts.
> ---
> 
> Pushing under the build-breaker rule.  See src/util/util.c for other
> cases where we do the same.
> 
>  src/security/security_dac.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/src/security/security_dac.c b/src/security/security_dac.c
> index a67f5d6..a1aa0ef 100644
> --- a/src/security/security_dac.c
> +++ b/src/security/security_dac.c
> @@ -859,7 +859,8 @@ virSecurityDACSetProcessLabel(virSecurityManagerPtr mgr,
>      if (virSecurityDACGetIds(def, priv, &user, &group))
>          return -1;
> 
> -    VIR_DEBUG("Dropping privileges of DEF to %u:%u", user, group);
> +    VIR_DEBUG("Dropping privileges of DEF to %u:%u",
> +              (unsigned int) user, (unsigned int) group);
> 
>      if (virSetUIDGID(user, group) < 0)
>          return -1;
> @@ -920,7 +921,9 @@ virSecurityDACGenLabel(virSecurityManagerPtr mgr,
>          }
>          break;
>      case VIR_DOMAIN_SECLABEL_DYNAMIC:
> -        if (virAsprintf(&seclabel->label, "%d:%d", priv->user, priv->group) < 0) {
> +        if (virAsprintf(&seclabel->label, "%d:%d",
> +                        (unsigned int) priv->user,
> +                        (unsigned int) priv->group) < 0) {

In fact, "%d" expects signed int.

>              virReportOOMError();
>              return rc;
>          }
> 




More information about the libvir-list mailing list