Guanqun Lu <guanqun.lu@xxxxxxxxx> writes: > Post-conditions when these functions return successfully: > lk->fd == -1? lk->filename[0] == '\0'? > close_lock_file() yes no > commit_lock_file() yes yes > rollback_lock_file() no* yes > > [*] This commit changes this 'no' in rollback_lock_file() to 'yes', > which achieves more robust and unified interface. Is there a broken caller this patch fixes? IOW, is there a codepath that can call rollback and then later notices lk->fd is not negative and uses it without checking lk->filename[0] first? > Signed-off-by: Guanqun Lu <guanqun.lu@xxxxxxxxx> > --- > lockfile.c | 4 +++- > 1 files changed, 3 insertions(+), 1 deletions(-) > > diff --git a/lockfile.c b/lockfile.c > index 021c337..44e5253 100644 > --- a/lockfile.c > +++ b/lockfile.c > @@ -243,8 +243,10 @@ int commit_locked_index(struct lock_file *lk) > void rollback_lock_file(struct lock_file *lk) > { > if (lk->filename[0]) { > - if (lk->fd >= 0) > + if (lk->fd >= 0) { > close(lk->fd); > + lk->fd = -1; > + } > unlink(lk->filename); > } > lk->filename[0] = 0; > -- > 1.6.1.2.392.gb04d1 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html