rng random backend: check for -EAGAIN errors on read
Not handling EAGAIN triggers the assert qemu/backends/rng-random.c:44:entropy_available: assertion failed: (len != -1) Aborted (core dumped) This happens when starting a guest with '-device virtio-rng-pci', issuing a 'cat /dev/hwrng' in the guest, while also doing 'cat /dev/random' on the host. Reported-by: yunpingzheng <yunzheng@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com> Message-id: eacda84dfaf2d99cf6d250b678be4e4d6c2088fb.1366108096.git.amit.shah@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
		
							parent
							
								
									7dda5dc82a
								
							
						
					
					
						commit
						acbbc03661
					
				| 
						 | 
					@ -41,6 +41,9 @@ static void entropy_available(void *opaque)
 | 
				
			||||||
    ssize_t len;
 | 
					    ssize_t len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    len = read(s->fd, buffer, s->size);
 | 
					    len = read(s->fd, buffer, s->size);
 | 
				
			||||||
 | 
					    if (len < 0 && errno == EAGAIN) {
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    g_assert(len != -1);
 | 
					    g_assert(len != -1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    s->receive_func(s->opaque, buffer, len);
 | 
					    s->receive_func(s->opaque, buffer, len);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue