diff options
Diffstat (limited to 'source/ui-blob.c')
-rw-r--r--source/ui-blob.c17
1 file changed, 4 insertions, 13 deletions
diff --git a/source/ui-blob.c b/source/ui-blob.c
index 3c3ba71..f7047c7 100644
--- a/source/ui-blob.c
+++ b/source/ui-blob.c
@@ -11,6 +11,7 @@
#include "cgit.h"
#include "html.h"
+#include "shared.h"
#include "ui-blob.h"
#include "ui-shared.h"
@@ -94,15 +95,6 @@ static int find_path_oid(struct object_id *oid, char *path, int file_only)
return walk.found_path;
}
-/*
- * Callers ask before reading the object, so a huge blob stays out of
- * memory rather than being noticed once already there.
- */
-static int over_size_limit(unsigned long size)
-{
- return ctx.cfg.max_blob_size && size / 1024 > (unsigned long)ctx.cfg.max_blob_size;
-}
-
int cgit_ref_path_exists(const char *path, const char *ref, int file_only)
{
struct object_id oid;
@@ -139,7 +131,7 @@ int cgit_print_file(char *path, const char *head, int file_only, int html_escape
}
if (type == OBJ_BAD)
return -1;
- if (over_size_limit(size))
+ if (cgit_blob_too_large(size))
return -1;
buf = odb_read_object(the_repository->objects, &oid, &type, &size);
if (!buf)
@@ -210,9 +202,8 @@ void cgit_print_blob(const char *hex, char *path, const char *head, int file_onl
return;
}
- if (over_size_limit(size)) {
- cgit_print_error_page(413, "Content Too Large", "Blob size (%lu KB) exceeds the limit (%d KB)",
- size / 1024, ctx.cfg.max_blob_size);
+ if (cgit_blob_too_large(size)) {
+ cgit_print_blob_too_large(size);
return;
}