libctf: fix spurious error when rolling back to the first snapshot

The first ctf_snapshot called after CTF file creation yields a snapshot
handle that always yields a spurious ECTF_OVERROLLBACK error ("Attempt
to roll back past a ctf_update") on ctf_rollback(), even if ctf_update
has never been called.

The fix is to start with a ctf_snapshot value higher than the zero value
that ctf_snapshot_lu ("last update CTF snapshot value") is initialized
to.

libctf/
	* ctf-create.c (ctf_create): Fix off-by-one error.
This commit is contained in:
Nick Alcock 2019-06-28 22:11:14 +01:00
parent f5e9c9bde0
commit f57cf0e3e3
2 changed files with 5 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2019-06-28 Nick Alcock <nick.alcock@oracle.com>
* ctf-create.c (ctf_create): Fix off-by-one error.
2019-06-28 Nick Alcock <nick.alcock@oracle.com>
* ctf-impl.h: (struct ctf_strs_writable): New, non-const version of

View File

@ -82,7 +82,7 @@ ctf_create (int *errp)
fp->ctf_dvhash = dvhash;
fp->ctf_dtnextid = 1;
fp->ctf_dtoldid = 0;
fp->ctf_snapshots = 0;
fp->ctf_snapshots = 1;
fp->ctf_snapshot_lu = 0;
return fp;