From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58681) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UKACr-0003la-5M for qemu-devel@nongnu.org; Mon, 25 Mar 2013 12:25:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UKACm-0005nQ-Sd for qemu-devel@nongnu.org; Mon, 25 Mar 2013 12:25:09 -0400 Received: from mail-ie0-x22c.google.com ([2607:f8b0:4001:c03::22c]:53529) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UKACm-0005my-OQ for qemu-devel@nongnu.org; Mon, 25 Mar 2013 12:25:04 -0400 Received: by mail-ie0-f172.google.com with SMTP id c10so7718783ieb.3 for ; Mon, 25 Mar 2013 09:25:04 -0700 (PDT) Sender: fluxion Date: Mon, 25 Mar 2013 11:20:12 -0500 From: mdroth Message-ID: <20130325162012.GB8146@vm> References: <20130322163107.489dd941@doriath> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130322163107.489dd941@doriath> Subject: Re: [Qemu-devel] [PATCH] qemu-ga: ga_get_fd_handle(): abort if fd_counter overflows List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: qemu-devel On Fri, Mar 22, 2013 at 04:31:07PM -0400, Luiz Capitulino wrote: > 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 Thanks, applied to qga branch with s/resonable/reasonable/ typo fix. > --- > qga/main.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/qga/main.c b/qga/main.c > index 74ef788..5f505a2 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 resonable 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"); > } > -- > 1.8.1.4 >