{
        struct crypto_report_blkcipher rblkcipher;
 
-       strncpy(rblkcipher.type, "ablkcipher", sizeof(rblkcipher.type));
-       strncpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<default>",
+       memset(&rblkcipher, 0, sizeof(rblkcipher));
+
+       strscpy(rblkcipher.type, "ablkcipher", sizeof(rblkcipher.type));
+       strscpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<default>",
                sizeof(rblkcipher.geniv));
-       rblkcipher.geniv[sizeof(rblkcipher.geniv) - 1] = '\0';
 
        rblkcipher.blocksize = alg->cra_blocksize;
        rblkcipher.min_keysize = alg->cra_ablkcipher.min_keysize;
        rblkcipher.max_keysize = alg->cra_ablkcipher.max_keysize;
        rblkcipher.ivsize = alg->cra_ablkcipher.ivsize;
 
-       if (nla_put(skb, CRYPTOCFGA_REPORT_BLKCIPHER,
-                   sizeof(struct crypto_report_blkcipher), &rblkcipher))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_REPORT_BLKCIPHER,
+                      sizeof(rblkcipher), &rblkcipher);
 }
 #else
 static int crypto_ablkcipher_report(struct sk_buff *skb, struct crypto_alg *alg)
 {
        struct crypto_report_blkcipher rblkcipher;
 
-       strncpy(rblkcipher.type, "givcipher", sizeof(rblkcipher.type));
-       strncpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<built-in>",
+       memset(&rblkcipher, 0, sizeof(rblkcipher));
+
+       strscpy(rblkcipher.type, "givcipher", sizeof(rblkcipher.type));
+       strscpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<built-in>",
                sizeof(rblkcipher.geniv));
-       rblkcipher.geniv[sizeof(rblkcipher.geniv) - 1] = '\0';
 
        rblkcipher.blocksize = alg->cra_blocksize;
        rblkcipher.min_keysize = alg->cra_ablkcipher.min_keysize;
        rblkcipher.max_keysize = alg->cra_ablkcipher.max_keysize;
        rblkcipher.ivsize = alg->cra_ablkcipher.ivsize;
 
-       if (nla_put(skb, CRYPTOCFGA_REPORT_BLKCIPHER,
-                   sizeof(struct crypto_report_blkcipher), &rblkcipher))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_REPORT_BLKCIPHER,
+                      sizeof(rblkcipher), &rblkcipher);
 }
 #else
 static int crypto_givcipher_report(struct sk_buff *skb, struct crypto_alg *alg)
 
 {
        struct crypto_report_acomp racomp;
 
-       strncpy(racomp.type, "acomp", sizeof(racomp.type));
+       memset(&racomp, 0, sizeof(racomp));
 
-       if (nla_put(skb, CRYPTOCFGA_REPORT_ACOMP,
-                   sizeof(struct crypto_report_acomp), &racomp))
-               goto nla_put_failure;
-       return 0;
+       strscpy(racomp.type, "acomp", sizeof(racomp.type));
 
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_REPORT_ACOMP, sizeof(racomp), &racomp);
 }
 #else
 static int crypto_acomp_report(struct sk_buff *skb, struct crypto_alg *alg)
 
        struct crypto_report_aead raead;
        struct aead_alg *aead = container_of(alg, struct aead_alg, base);
 
-       strncpy(raead.type, "aead", sizeof(raead.type));
-       strncpy(raead.geniv, "<none>", sizeof(raead.geniv));
+       memset(&raead, 0, sizeof(raead));
+
+       strscpy(raead.type, "aead", sizeof(raead.type));
+       strscpy(raead.geniv, "<none>", sizeof(raead.geniv));
 
        raead.blocksize = alg->cra_blocksize;
        raead.maxauthsize = aead->maxauthsize;
        raead.ivsize = aead->ivsize;
 
-       if (nla_put(skb, CRYPTOCFGA_REPORT_AEAD,
-                   sizeof(struct crypto_report_aead), &raead))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_REPORT_AEAD, sizeof(raead), &raead);
 }
 #else
 static int crypto_aead_report(struct sk_buff *skb, struct crypto_alg *alg)
 
 {
        struct crypto_report_hash rhash;
 
-       strncpy(rhash.type, "ahash", sizeof(rhash.type));
+       memset(&rhash, 0, sizeof(rhash));
+
+       strscpy(rhash.type, "ahash", sizeof(rhash.type));
 
        rhash.blocksize = alg->cra_blocksize;
        rhash.digestsize = __crypto_hash_alg_common(alg)->digestsize;
 
-       if (nla_put(skb, CRYPTOCFGA_REPORT_HASH,
-                   sizeof(struct crypto_report_hash), &rhash))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_REPORT_HASH, sizeof(rhash), &rhash);
 }
 #else
 static int crypto_ahash_report(struct sk_buff *skb, struct crypto_alg *alg)
 
 {
        struct crypto_report_akcipher rakcipher;
 
-       strncpy(rakcipher.type, "akcipher", sizeof(rakcipher.type));
+       memset(&rakcipher, 0, sizeof(rakcipher));
 
-       if (nla_put(skb, CRYPTOCFGA_REPORT_AKCIPHER,
-                   sizeof(struct crypto_report_akcipher), &rakcipher))
-               goto nla_put_failure;
-       return 0;
+       strscpy(rakcipher.type, "akcipher", sizeof(rakcipher.type));
 
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_REPORT_AKCIPHER,
+                      sizeof(rakcipher), &rakcipher);
 }
 #else
 static int crypto_akcipher_report(struct sk_buff *skb, struct crypto_alg *alg)
 
 {
        struct crypto_report_blkcipher rblkcipher;
 
-       strncpy(rblkcipher.type, "blkcipher", sizeof(rblkcipher.type));
-       strncpy(rblkcipher.geniv, alg->cra_blkcipher.geniv ?: "<default>",
+       memset(&rblkcipher, 0, sizeof(rblkcipher));
+
+       strscpy(rblkcipher.type, "blkcipher", sizeof(rblkcipher.type));
+       strscpy(rblkcipher.geniv, alg->cra_blkcipher.geniv ?: "<default>",
                sizeof(rblkcipher.geniv));
-       rblkcipher.geniv[sizeof(rblkcipher.geniv) - 1] = '\0';
 
        rblkcipher.blocksize = alg->cra_blocksize;
        rblkcipher.min_keysize = alg->cra_blkcipher.min_keysize;
        rblkcipher.max_keysize = alg->cra_blkcipher.max_keysize;
        rblkcipher.ivsize = alg->cra_blkcipher.ivsize;
 
-       if (nla_put(skb, CRYPTOCFGA_REPORT_BLKCIPHER,
-                   sizeof(struct crypto_report_blkcipher), &rblkcipher))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_REPORT_BLKCIPHER,
+                      sizeof(rblkcipher), &rblkcipher);
 }
 #else
 static int crypto_blkcipher_report(struct sk_buff *skb, struct crypto_alg *alg)
 
 {
        struct crypto_report_cipher rcipher;
 
-       strncpy(rcipher.type, "cipher", sizeof(rcipher.type));
+       memset(&rcipher, 0, sizeof(rcipher));
+
+       strscpy(rcipher.type, "cipher", sizeof(rcipher.type));
 
        rcipher.blocksize = alg->cra_blocksize;
        rcipher.min_keysize = alg->cra_cipher.cia_min_keysize;
        rcipher.max_keysize = alg->cra_cipher.cia_max_keysize;
 
-       if (nla_put(skb, CRYPTOCFGA_REPORT_CIPHER,
-                   sizeof(struct crypto_report_cipher), &rcipher))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_REPORT_CIPHER,
+                      sizeof(rcipher), &rcipher);
 }
 
 static int crypto_report_comp(struct sk_buff *skb, struct crypto_alg *alg)
 {
        struct crypto_report_comp rcomp;
 
-       strncpy(rcomp.type, "compression", sizeof(rcomp.type));
-       if (nla_put(skb, CRYPTOCFGA_REPORT_COMPRESS,
-                   sizeof(struct crypto_report_comp), &rcomp))
-               goto nla_put_failure;
-       return 0;
+       memset(&rcomp, 0, sizeof(rcomp));
 
-nla_put_failure:
-       return -EMSGSIZE;
+       strscpy(rcomp.type, "compression", sizeof(rcomp.type));
+
+       return nla_put(skb, CRYPTOCFGA_REPORT_COMPRESS, sizeof(rcomp), &rcomp);
 }
 
 static int crypto_report_one(struct crypto_alg *alg,
                             struct crypto_user_alg *ualg, struct sk_buff *skb)
 {
-       strncpy(ualg->cru_name, alg->cra_name, sizeof(ualg->cru_name));
-       strncpy(ualg->cru_driver_name, alg->cra_driver_name,
+       memset(ualg, 0, sizeof(*ualg));
+
+       strscpy(ualg->cru_name, alg->cra_name, sizeof(ualg->cru_name));
+       strscpy(ualg->cru_driver_name, alg->cra_driver_name,
                sizeof(ualg->cru_driver_name));
-       strncpy(ualg->cru_module_name, module_name(alg->cra_module),
+       strscpy(ualg->cru_module_name, module_name(alg->cra_module),
                sizeof(ualg->cru_module_name));
 
        ualg->cru_type = 0;
        if (alg->cra_flags & CRYPTO_ALG_LARVAL) {
                struct crypto_report_larval rl;
 
-               strncpy(rl.type, "larval", sizeof(rl.type));
-               if (nla_put(skb, CRYPTOCFGA_REPORT_LARVAL,
-                           sizeof(struct crypto_report_larval), &rl))
+               memset(&rl, 0, sizeof(rl));
+               strscpy(rl.type, "larval", sizeof(rl.type));
+               if (nla_put(skb, CRYPTOCFGA_REPORT_LARVAL, sizeof(rl), &rl))
                        goto nla_put_failure;
                goto out;
        }
 
 
        memset(&raead, 0, sizeof(raead));
 
-       strncpy(raead.type, "aead", sizeof(raead.type));
+       strscpy(raead.type, "aead", sizeof(raead.type));
 
        v32 = atomic_read(&alg->encrypt_cnt);
        raead.stat_encrypt_cnt = v32;
        v32 = atomic_read(&alg->aead_err_cnt);
        raead.stat_aead_err_cnt = v32;
 
-       if (nla_put(skb, CRYPTOCFGA_STAT_AEAD,
-                   sizeof(struct crypto_stat), &raead))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_STAT_AEAD, sizeof(raead), &raead);
 }
 
 static int crypto_report_cipher(struct sk_buff *skb, struct crypto_alg *alg)
 
        memset(&rcipher, 0, sizeof(rcipher));
 
-       strlcpy(rcipher.type, "cipher", sizeof(rcipher.type));
+       strscpy(rcipher.type, "cipher", sizeof(rcipher.type));
 
        v32 = atomic_read(&alg->encrypt_cnt);
        rcipher.stat_encrypt_cnt = v32;
        v32 = atomic_read(&alg->cipher_err_cnt);
        rcipher.stat_cipher_err_cnt = v32;
 
-       if (nla_put(skb, CRYPTOCFGA_STAT_CIPHER,
-                   sizeof(struct crypto_stat), &rcipher))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_STAT_CIPHER, sizeof(rcipher), &rcipher);
 }
 
 static int crypto_report_comp(struct sk_buff *skb, struct crypto_alg *alg)
 
        memset(&rcomp, 0, sizeof(rcomp));
 
-       strlcpy(rcomp.type, "compression", sizeof(rcomp.type));
+       strscpy(rcomp.type, "compression", sizeof(rcomp.type));
        v32 = atomic_read(&alg->compress_cnt);
        rcomp.stat_compress_cnt = v32;
        v64 = atomic64_read(&alg->compress_tlen);
        v32 = atomic_read(&alg->cipher_err_cnt);
        rcomp.stat_compress_err_cnt = v32;
 
-       if (nla_put(skb, CRYPTOCFGA_STAT_COMPRESS,
-                   sizeof(struct crypto_stat), &rcomp))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_STAT_COMPRESS, sizeof(rcomp), &rcomp);
 }
 
 static int crypto_report_acomp(struct sk_buff *skb, struct crypto_alg *alg)
 
        memset(&racomp, 0, sizeof(racomp));
 
-       strlcpy(racomp.type, "acomp", sizeof(racomp.type));
+       strscpy(racomp.type, "acomp", sizeof(racomp.type));
        v32 = atomic_read(&alg->compress_cnt);
        racomp.stat_compress_cnt = v32;
        v64 = atomic64_read(&alg->compress_tlen);
        v32 = atomic_read(&alg->cipher_err_cnt);
        racomp.stat_compress_err_cnt = v32;
 
-       if (nla_put(skb, CRYPTOCFGA_STAT_ACOMP,
-                   sizeof(struct crypto_stat), &racomp))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_STAT_ACOMP, sizeof(racomp), &racomp);
 }
 
 static int crypto_report_akcipher(struct sk_buff *skb, struct crypto_alg *alg)
 
        memset(&rakcipher, 0, sizeof(rakcipher));
 
-       strncpy(rakcipher.type, "akcipher", sizeof(rakcipher.type));
+       strscpy(rakcipher.type, "akcipher", sizeof(rakcipher.type));
        v32 = atomic_read(&alg->encrypt_cnt);
        rakcipher.stat_encrypt_cnt = v32;
        v64 = atomic64_read(&alg->encrypt_tlen);
        v32 = atomic_read(&alg->akcipher_err_cnt);
        rakcipher.stat_akcipher_err_cnt = v32;
 
-       if (nla_put(skb, CRYPTOCFGA_STAT_AKCIPHER,
-                   sizeof(struct crypto_stat), &rakcipher))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_STAT_AKCIPHER,
+                      sizeof(rakcipher), &rakcipher);
 }
 
 static int crypto_report_kpp(struct sk_buff *skb, struct crypto_alg *alg)
 
        memset(&rkpp, 0, sizeof(rkpp));
 
-       strlcpy(rkpp.type, "kpp", sizeof(rkpp.type));
+       strscpy(rkpp.type, "kpp", sizeof(rkpp.type));
 
        v = atomic_read(&alg->setsecret_cnt);
        rkpp.stat_setsecret_cnt = v;
        v = atomic_read(&alg->kpp_err_cnt);
        rkpp.stat_kpp_err_cnt = v;
 
-       if (nla_put(skb, CRYPTOCFGA_STAT_KPP,
-                   sizeof(struct crypto_stat), &rkpp))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_STAT_KPP, sizeof(rkpp), &rkpp);
 }
 
 static int crypto_report_ahash(struct sk_buff *skb, struct crypto_alg *alg)
 
        memset(&rhash, 0, sizeof(rhash));
 
-       strncpy(rhash.type, "ahash", sizeof(rhash.type));
+       strscpy(rhash.type, "ahash", sizeof(rhash.type));
 
        v32 = atomic_read(&alg->hash_cnt);
        rhash.stat_hash_cnt = v32;
        v32 = atomic_read(&alg->hash_err_cnt);
        rhash.stat_hash_err_cnt = v32;
 
-       if (nla_put(skb, CRYPTOCFGA_STAT_HASH,
-                   sizeof(struct crypto_stat), &rhash))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_STAT_HASH, sizeof(rhash), &rhash);
 }
 
 static int crypto_report_shash(struct sk_buff *skb, struct crypto_alg *alg)
 
        memset(&rhash, 0, sizeof(rhash));
 
-       strncpy(rhash.type, "shash", sizeof(rhash.type));
+       strscpy(rhash.type, "shash", sizeof(rhash.type));
 
        v32 = atomic_read(&alg->hash_cnt);
        rhash.stat_hash_cnt = v32;
        v32 = atomic_read(&alg->hash_err_cnt);
        rhash.stat_hash_err_cnt = v32;
 
-       if (nla_put(skb, CRYPTOCFGA_STAT_HASH,
-                   sizeof(struct crypto_stat), &rhash))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_STAT_HASH, sizeof(rhash), &rhash);
 }
 
 static int crypto_report_rng(struct sk_buff *skb, struct crypto_alg *alg)
 
        memset(&rrng, 0, sizeof(rrng));
 
-       strncpy(rrng.type, "rng", sizeof(rrng.type));
+       strscpy(rrng.type, "rng", sizeof(rrng.type));
 
        v32 = atomic_read(&alg->generate_cnt);
        rrng.stat_generate_cnt = v32;
        v32 = atomic_read(&alg->hash_err_cnt);
        rrng.stat_rng_err_cnt = v32;
 
-       if (nla_put(skb, CRYPTOCFGA_STAT_RNG,
-                   sizeof(struct crypto_stat), &rrng))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_STAT_RNG, sizeof(rrng), &rrng);
 }
 
 static int crypto_reportstat_one(struct crypto_alg *alg,
 {
        memset(ualg, 0, sizeof(*ualg));
 
-       strlcpy(ualg->cru_name, alg->cra_name, sizeof(ualg->cru_name));
-       strlcpy(ualg->cru_driver_name, alg->cra_driver_name,
+       strscpy(ualg->cru_name, alg->cra_name, sizeof(ualg->cru_name));
+       strscpy(ualg->cru_driver_name, alg->cra_driver_name,
                sizeof(ualg->cru_driver_name));
-       strlcpy(ualg->cru_module_name, module_name(alg->cra_module),
+       strscpy(ualg->cru_module_name, module_name(alg->cra_module),
                sizeof(ualg->cru_module_name));
 
        ualg->cru_type = 0;
                struct crypto_stat rl;
 
                memset(&rl, 0, sizeof(rl));
-               strlcpy(rl.type, "larval", sizeof(rl.type));
-               if (nla_put(skb, CRYPTOCFGA_STAT_LARVAL,
-                           sizeof(struct crypto_stat), &rl))
+               strscpy(rl.type, "larval", sizeof(rl.type));
+               if (nla_put(skb, CRYPTOCFGA_STAT_LARVAL, sizeof(rl), &rl))
                        goto nla_put_failure;
                goto out;
        }
 
 {
        struct crypto_report_kpp rkpp;
 
-       strncpy(rkpp.type, "kpp", sizeof(rkpp.type));
+       memset(&rkpp, 0, sizeof(rkpp));
 
-       if (nla_put(skb, CRYPTOCFGA_REPORT_KPP,
-                   sizeof(struct crypto_report_kpp), &rkpp))
-               goto nla_put_failure;
-       return 0;
+       strscpy(rkpp.type, "kpp", sizeof(rkpp.type));
 
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_REPORT_KPP, sizeof(rkpp), &rkpp);
 }
 #else
 static int crypto_kpp_report(struct sk_buff *skb, struct crypto_alg *alg)
 
 {
        struct crypto_report_rng rrng;
 
-       strncpy(rrng.type, "rng", sizeof(rrng.type));
+       memset(&rrng, 0, sizeof(rrng));
 
-       rrng.seedsize = seedsize(alg);
+       strscpy(rrng.type, "rng", sizeof(rrng.type));
 
-       if (nla_put(skb, CRYPTOCFGA_REPORT_RNG,
-                   sizeof(struct crypto_report_rng), &rrng))
-               goto nla_put_failure;
-       return 0;
+       rrng.seedsize = seedsize(alg);
 
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_REPORT_RNG, sizeof(rrng), &rrng);
 }
 #else
 static int crypto_rng_report(struct sk_buff *skb, struct crypto_alg *alg)
 
 {
        struct crypto_report_comp rscomp;
 
-       strncpy(rscomp.type, "scomp", sizeof(rscomp.type));
+       memset(&rscomp, 0, sizeof(rscomp));
 
-       if (nla_put(skb, CRYPTOCFGA_REPORT_COMPRESS,
-                   sizeof(struct crypto_report_comp), &rscomp))
-               goto nla_put_failure;
-       return 0;
+       strscpy(rscomp.type, "scomp", sizeof(rscomp.type));
 
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_REPORT_COMPRESS,
+                      sizeof(rscomp), &rscomp);
 }
 #else
 static int crypto_scomp_report(struct sk_buff *skb, struct crypto_alg *alg)
 
        struct crypto_report_hash rhash;
        struct shash_alg *salg = __crypto_shash_alg(alg);
 
-       strncpy(rhash.type, "shash", sizeof(rhash.type));
+       memset(&rhash, 0, sizeof(rhash));
+
+       strscpy(rhash.type, "shash", sizeof(rhash.type));
 
        rhash.blocksize = alg->cra_blocksize;
        rhash.digestsize = salg->digestsize;
 
-       if (nla_put(skb, CRYPTOCFGA_REPORT_HASH,
-                   sizeof(struct crypto_report_hash), &rhash))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_REPORT_HASH, sizeof(rhash), &rhash);
 }
 #else
 static int crypto_shash_report(struct sk_buff *skb, struct crypto_alg *alg)
 
        struct skcipher_alg *skcipher = container_of(alg, struct skcipher_alg,
                                                     base);
 
-       strncpy(rblkcipher.type, "skcipher", sizeof(rblkcipher.type));
-       strncpy(rblkcipher.geniv, "<none>", sizeof(rblkcipher.geniv));
+       memset(&rblkcipher, 0, sizeof(rblkcipher));
+
+       strscpy(rblkcipher.type, "skcipher", sizeof(rblkcipher.type));
+       strscpy(rblkcipher.geniv, "<none>", sizeof(rblkcipher.geniv));
 
        rblkcipher.blocksize = alg->cra_blocksize;
        rblkcipher.min_keysize = skcipher->min_keysize;
        rblkcipher.max_keysize = skcipher->max_keysize;
        rblkcipher.ivsize = skcipher->ivsize;
 
-       if (nla_put(skb, CRYPTOCFGA_REPORT_BLKCIPHER,
-                   sizeof(struct crypto_report_blkcipher), &rblkcipher))
-               goto nla_put_failure;
-       return 0;
-
-nla_put_failure:
-       return -EMSGSIZE;
+       return nla_put(skb, CRYPTOCFGA_REPORT_BLKCIPHER,
+                      sizeof(rblkcipher), &rblkcipher);
 }
 #else
 static int crypto_skcipher_report(struct sk_buff *skb, struct crypto_alg *alg)