Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/technical/api-lockfile.txt3
-rw-r--r--lockfile.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/Documentation/technical/api-lockfile.txt b/Documentation/technical/api-lockfile.txt
index 99830f3bf3..6538610759 100644
--- a/Documentation/technical/api-lockfile.txt
+++ b/Documentation/technical/api-lockfile.txt
@@ -147,7 +147,8 @@ commit_lock_file::
`hold_lock_file_for_append`, close the file descriptor and
rename the lockfile to its final destination. Return 0 upon
success or a negative value on failure to `close(2)` or
- `rename(2)`.
+ `rename(2)`. It is a bug to call `commit_lock_file()` for a
+ `lock_file` object that is not currently locked.
rollback_lock_file::
diff --git a/lockfile.c b/lockfile.c
index e148227fb1..c897dd8a93 100644
--- a/lockfile.c
+++ b/lockfile.c
@@ -301,6 +301,9 @@ int commit_lock_file(struct lock_file *lk)
{
char result_file[PATH_MAX];
+ if (!lk->filename[0])
+ die("BUG: attempt to commit unlocked object");
+
if (close_lock_file(lk))
return -1;