about summary refs log tree commit diff
path: root/ui-tree.c
diff options
context:
space:
mode:
authorGeorg Lukas <georg@op-co.de>2009-11-28 03:44:33 +0100
committerGeorg Lukas <georg@op-co.de>2009-11-28 03:44:33 +0100
commitef07ccc72da0270e9298c36046a0187dc359b0da (patch)
tree57a2ffdeb929d9b4ed44dfae3a1fb7ca550aac63 /ui-tree.c
parentcgit.css: highlight directories in tree (diff)
downloadcgit-pink-ef07ccc72da0270e9298c36046a0187dc359b0da.tar.gz
cgit-pink-ef07ccc72da0270e9298c36046a0187dc359b0da.zip
"max-blob-size" config var to limit generated HTML size
Sometimes it is not feasible to generate the HTML pretty-print for large
files, especially if a source-filter is involved or binary data is to be
displayed. The "max-blob-size" config var allows to disable HTML output
for blobs bigger than X KBytes. Plain downloads are not affected.

Signed-off-by: Georg Lukas <georg@op-co.de>
Diffstat (limited to 'ui-tree.c')
-rw-r--r--ui-tree.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ui-tree.c b/ui-tree.c
index f53ab64..f281937 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -107,6 +107,12 @@ static void print_object(const unsigned char *sha1, char *path, const char *base
 		        curr_rev, path);
 	htmlf(")<br/>blob: %s\n", sha1_to_hex(sha1));
 
+	if (ctx.cfg.max_blob_size && size / 1024 > ctx.cfg.max_blob_size) {
+		htmlf("<div class='error'>blob size (%dKB) exceeds display size limit (%dKB).</div>",
+				size / 1024, ctx.cfg.max_blob_size);
+		return;
+	}
+
 	if (buffer_is_binary(buf, size))
 		print_binary_buffer(buf, size);
 	else