On Fri, 5 Aug 2016, Stephan Mueller wrote:
Am Donnerstag, 4. August 2016, 13:41:58 CEST schrieb Mat Martineau:
Hi Mat,
+
+long keyctl_dh_compute(struct keyctl_dh_params __user *params,
+ char __user *buffer, size_t buflen,
+ struct keyctl_kdf_params __user *kdf)
+{
+ struct keyctl_kdf_params kdfcopy;
+
+ if (!kdf)
+ return __keyctl_dh_compute(params, buffer, buflen, NULL);
+
+ if (copy_from_user(&kdfcopy, kdf, sizeof(kdfcopy)) != 0)
+ return -EFAULT;
+
+ return __keyctl_dh_compute(params, buffer, buflen, &kdfcopy);
I'd find this more readable if there was one call to __keyctl_dh_compute.
When trying to implement it, I think that it would even be more confusing,
because we need a conditional in any case. Do you like
return __keyctl_dh_compute(params, buffer, buflen, (kdf) ? &kdfcopy : NULL);
better than the already presented code? Besides, this would now imply that we
have two conditionals instead of one.
Another approach that uses one conditional is to add a struct
keyctl_kdf_params* variable and assign it in the conditional block. Maybe
that's not much of a win, it's up to you.
--
Mat Martineau
Intel OTC
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html