aboutsummaryrefslogtreecommitdiff
path: root/qga
diff options
context:
space:
mode:
Diffstat (limited to 'qga')
-rw-r--r--qga/main.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/qga/main.c b/qga/main.c
index 74ef7885b2..1841759db2 100644
--- a/qga/main.c
+++ b/qga/main.c
@@ -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");
}