selinux: use sprintf return value
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Wed, 21 Oct 2015 21:44:27 +0000 (17:44 -0400)
committerPaul Moore <pmoore@redhat.com>
Wed, 21 Oct 2015 21:44:27 +0000 (17:44 -0400)
sprintf returns the number of characters printed (excluding '\0'), so
we can use that and avoid duplicating the length computation.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: Paul Moore <pmoore@redhat.com>
security/selinux/ss/services.c

index aa2bdcb20848c417f53c7384be2f00ee0ba6895b..ebb5eb3c318c789922da4851b1b0507f28e7f831 100644 (file)
@@ -1218,13 +1218,10 @@ static int context_struct_to_string(struct context *context, char **scontext, u3
        /*
         * Copy the user name, role name and type name into the context.
         */
-       sprintf(scontextp, "%s:%s:%s",
+       scontextp += sprintf(scontextp, "%s:%s:%s",
                sym_name(&policydb, SYM_USERS, context->user - 1),
                sym_name(&policydb, SYM_ROLES, context->role - 1),
                sym_name(&policydb, SYM_TYPES, context->type - 1));
-       scontextp += strlen(sym_name(&policydb, SYM_USERS, context->user - 1)) +
-                    1 + strlen(sym_name(&policydb, SYM_ROLES, context->role - 1)) +
-                    1 + strlen(sym_name(&policydb, SYM_TYPES, context->type - 1));
 
        mls_sid_to_context(context, &scontextp);