summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Shawn O. Pearce <spearce@spearce.org>2006-12-23 02:34:38 -0500
committerLibravatar Junio C Hamano <junkio@cox.net>2006-12-29 11:36:45 -0800
commit40be82723ca35d4e95daccc3ccf6456f6876430e (patch)
tree21505c4cc32640221ced3e0e7de6ffd2f3245a0b
parentLoad core configuration in git-verify-pack. (diff)
downloadtgif-40be82723ca35d4e95daccc3ccf6456f6876430e.tar.xz
Ensure core.packedGitWindowSize cannot be less than 2 pages.
We cannot allow a window to be smaller than 2 system pages. This limitation is necessary to support the feature of use_pack() where we always supply at least 20 bytes after the offset to help the object header and delta base parsing routines. If packedGitWindowSize were allowed to be as small as 1 system page then we would be completely unable to access an object header which spanned over a page as we would never be able to arrange a mapping such that the header was contiguous in virtual memory. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--config.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/config.c b/config.c
index 21f166e608..3b8da569fa 100644
--- a/config.c
+++ b/config.c
@@ -302,8 +302,8 @@ int git_default_config(const char *var, const char *value)
int pgsz = getpagesize();
packed_git_window_size = git_config_int(var, value);
packed_git_window_size /= pgsz;
- if (!packed_git_window_size)
- packed_git_window_size = 1;
+ if (packed_git_window_size < 2)
+ packed_git_window_size = 2;
packed_git_window_size *= pgsz;
return 0;
}