Re: [Qemu-devel] [PATCH v3 12/23] linux-user: Call qcrypto_init if not using -seed

2019-04-15 Thread Daniel P . Berrangé
On Mon, Apr 15, 2019 at 12:23:18PM +0200, Philippe Mathieu-Daudé wrote:
> On 4/13/19 8:44 AM, Richard Henderson wrote:
> > On 4/10/19 11:49 PM, Philippe Mathieu-Daudé wrote:
> >>> -if (seed_optarg != NULL) {
> >>> -qemu_guest_random_seed_main(seed_optarg, _fatal);
> >>> +{
> >> Since 7be41675f7c we use gnu99 C, so this extra block indentation can be
> >> removed.
> >>
> >>> +Error *err = NULL;
> >>> +if (seed_optarg != NULL) {
> >>> +qemu_guest_random_seed_main(seed_optarg, );
> >>> +} else {
> >>> +/* ??? Assumes qcrypto is only used by qemu_guest_getrandom. 
> >>>  */
> >>> +qcrypto_init();
> >>> +}
> >>> +if (err) {
> >>> +error_reportf_err(err, "cannot initialize crypto: ");
> >>> +exit(1);
> >>> +}
> >>>  }
> > 
> > I could, but it also limits the scope, which is of more importance to 
> > variables
> > who have their address taken.  It means that their storage could (in 
> > theory) be
> > shared with objects not overlapping in scope.
> 
> Fine then.
> 
> I think your '???' comment is appropriate but I'd rather let Daniel
> opinate. Except that comment, for the rest:

In linux-user context, afaik, the random APIs are the only stuff that
will be used, none of the hash or cipher stuff is needed.

> 
> Reviewed-by: Philippe Mathieu-Daudé 
> 

Regards,
Daniel
-- 
|: https://berrange.com  -o-https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o-https://fstop138.berrange.com :|
|: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|



Re: [Qemu-devel] [PATCH v3 12/23] linux-user: Call qcrypto_init if not using -seed

2019-04-15 Thread Philippe Mathieu-Daudé
On 4/13/19 8:44 AM, Richard Henderson wrote:
> On 4/10/19 11:49 PM, Philippe Mathieu-Daudé wrote:
>>> -if (seed_optarg != NULL) {
>>> -qemu_guest_random_seed_main(seed_optarg, _fatal);
>>> +{
>> Since 7be41675f7c we use gnu99 C, so this extra block indentation can be
>> removed.
>>
>>> +Error *err = NULL;
>>> +if (seed_optarg != NULL) {
>>> +qemu_guest_random_seed_main(seed_optarg, );
>>> +} else {
>>> +/* ??? Assumes qcrypto is only used by qemu_guest_getrandom.  
>>> */
>>> +qcrypto_init();
>>> +}
>>> +if (err) {
>>> +error_reportf_err(err, "cannot initialize crypto: ");
>>> +exit(1);
>>> +}
>>>  }
> 
> I could, but it also limits the scope, which is of more importance to 
> variables
> who have their address taken.  It means that their storage could (in theory) 
> be
> shared with objects not overlapping in scope.

Fine then.

I think your '???' comment is appropriate but I'd rather let Daniel
opinate. Except that comment, for the rest:

Reviewed-by: Philippe Mathieu-Daudé 



Re: [Qemu-devel] [PATCH v3 12/23] linux-user: Call qcrypto_init if not using -seed

2019-04-13 Thread Richard Henderson
On 4/10/19 11:49 PM, Philippe Mathieu-Daudé wrote:
>> -if (seed_optarg != NULL) {
>> -qemu_guest_random_seed_main(seed_optarg, _fatal);
>> +{
> Since 7be41675f7c we use gnu99 C, so this extra block indentation can be
> removed.
> 
>> +Error *err = NULL;
>> +if (seed_optarg != NULL) {
>> +qemu_guest_random_seed_main(seed_optarg, );
>> +} else {
>> +/* ??? Assumes qcrypto is only used by qemu_guest_getrandom.  */
>> +qcrypto_init();
>> +}
>> +if (err) {
>> +error_reportf_err(err, "cannot initialize crypto: ");
>> +exit(1);
>> +}
>>  }

I could, but it also limits the scope, which is of more importance to variables
who have their address taken.  It means that their storage could (in theory) be
shared with objects not overlapping in scope.


r~



Re: [Qemu-devel] [PATCH v3 12/23] linux-user: Call qcrypto_init if not using -seed

2019-04-11 Thread Philippe Mathieu-Daudé
Hi Richard,

On 3/15/19 4:26 AM, Richard Henderson wrote:
> Cc: Laurent Vivier 
> Signed-off-by: Richard Henderson 
> ---
>  linux-user/main.c | 15 +--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/linux-user/main.c b/linux-user/main.c
> index cf7095bdaf..8478306eef 100644
> --- a/linux-user/main.c
> +++ b/linux-user/main.c
> @@ -38,6 +38,7 @@
>  #include "trace/control.h"
>  #include "target_elf.h"
>  #include "cpu_loop-common.h"
> +#include "crypto/init.h"
>  
>  char *exec_path;
>  
> @@ -686,8 +687,18 @@ int main(int argc, char **argv, char **envp)
>  if (seed_optarg == NULL) {
>  seed_optarg = getenv("QEMU_RAND_SEED");
>  }
> -if (seed_optarg != NULL) {
> -qemu_guest_random_seed_main(seed_optarg, _fatal);
> +{

Since 7be41675f7c we use gnu99 C, so this extra block indentation can be
removed.

> +Error *err = NULL;
> +if (seed_optarg != NULL) {
> +qemu_guest_random_seed_main(seed_optarg, );
> +} else {
> +/* ??? Assumes qcrypto is only used by qemu_guest_getrandom.  */
> +qcrypto_init();
> +}
> +if (err) {
> +error_reportf_err(err, "cannot initialize crypto: ");
> +exit(1);
> +}
>  }
>  
>  target_environ = envlist_to_environ(envlist, NULL);
> 



[Qemu-devel] [PATCH v3 12/23] linux-user: Call qcrypto_init if not using -seed

2019-03-14 Thread Richard Henderson
Cc: Laurent Vivier 
Signed-off-by: Richard Henderson 
---
 linux-user/main.c | 15 +--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/linux-user/main.c b/linux-user/main.c
index cf7095bdaf..8478306eef 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -38,6 +38,7 @@
 #include "trace/control.h"
 #include "target_elf.h"
 #include "cpu_loop-common.h"
+#include "crypto/init.h"
 
 char *exec_path;
 
@@ -686,8 +687,18 @@ int main(int argc, char **argv, char **envp)
 if (seed_optarg == NULL) {
 seed_optarg = getenv("QEMU_RAND_SEED");
 }
-if (seed_optarg != NULL) {
-qemu_guest_random_seed_main(seed_optarg, _fatal);
+{
+Error *err = NULL;
+if (seed_optarg != NULL) {
+qemu_guest_random_seed_main(seed_optarg, );
+} else {
+/* ??? Assumes qcrypto is only used by qemu_guest_getrandom.  */
+qcrypto_init();
+}
+if (err) {
+error_reportf_err(err, "cannot initialize crypto: ");
+exit(1);
+}
 }
 
 target_environ = envlist_to_environ(envlist, NULL);
-- 
2.17.2