]> git.proxmox.com Git - qemu.git/commitdiff
qemu-ga: ga_get_fd_handle(): abort if fd_counter overflows
authorLuiz Capitulino <lcapitulino@redhat.com>
Fri, 22 Mar 2013 20:31:07 +0000 (16:31 -0400)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Tue, 2 Apr 2013 14:06:11 +0000 (09:06 -0500)
Today we reset fd_counter if it wraps, but it's better to abort()
instead, as fd_counter should never reach INT64_MAX.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
*fixed typo: s/resonable/reasonable/

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
qga/main.c

index 74ef7885b251f93ad2b1f285170fa382fbac4278..1841759db270295c96262f215f92b408ac6f472c 100644 (file)
@@ -889,9 +889,13 @@ int64_t ga_get_fd_handle(GAState *s, Error **errp)
     g_assert(!ga_is_frozen(s));
 
     handle = s->pstate.fd_counter++;
-    if (s->pstate.fd_counter < 0) {
-        s->pstate.fd_counter = 0;
+
+    /* This should never happen on a reasonable timeframe, as guest-file-open
+     * would have to be issued 2^63 times */
+    if (s->pstate.fd_counter == INT64_MAX) {
+        abort();
     }
+
     if (!write_persistent_state(&s->pstate, s->pstate_filepath)) {
         error_setg(errp, "failed to commit persistent state to disk");
     }