Jason A. Donenfeld
441dac1d74
ui-blame: set repo for sb
...
Otherwise recent git complains and crashes with: "BUG: blame.c:1787:
repo is NULL".
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-11-25 06:01:34 +01:00
Jason A. Donenfeld
898b9e19e0
auth-filter: pass url with query string attached
...
Otherwise redirections come out wrong.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-11-25 06:01:34 +01:00
Jason A. Donenfeld
824138e591
Bump version.
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-08-03 17:04:03 +02:00
Jason A. Donenfeld
53efaf30b5
clone: fix directory traversal
...
This was introduced in the initial version of this code, way back when
in 2008.
$ curl http://127.0.0.1/cgit/repo/objects/?path=../../../../../../../../../etc/passwd
root:x:0:0:root:/root:/bin/sh
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
Reported-by: Jann Horn <jannh@google.com >
2018-08-03 17:04:03 +02:00
Jason A. Donenfeld
77b6f83344
auth-filters: add simple file-based authentication scheme
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-08-03 16:12:21 +02:00
Jason A. Donenfeld
82856923bf
auth-filters: use crypt() in simple-authentication
...
There's no use in giving a silly example to folks who will just copy it,
so instead try to do something slightly better.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-07-15 04:18:03 +02:00
Jason A. Donenfeld
b73df8098f
auth-filters: generate secret securely
...
This is much better than having the user generate it themselves.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-07-15 03:30:57 +02:00
Jason A. Donenfeld
c4d23d02ec
auth-filters: do not crash on nil username
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-07-14 05:10:28 +02:00
Jason A. Donenfeld
93a2c33051
auth-filter: do not write more than we've read
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-07-14 05:09:27 +02:00
Jason A. Donenfeld
c3b5b5f648
auth-filters: do not use HMAC-SHA1
...
Though SHA1 is broken, HMAC-SHA1 is still fine. But let's not push our
luck; SHA256 is more sensible anyway.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-07-14 03:33:56 +02:00
Jason A. Donenfeld
c132ef2462
Bump version.
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-07-13 22:40:42 +02:00
Jason A. Donenfeld
089b29a7e1
css: use correct size in annotated decoration
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-07-08 19:14:51 +02:00
Jason A. Donenfeld
22583c4992
cgitrc.5: add local tar signature example
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-07-05 02:40:48 +02:00
Jason A. Donenfeld
08a2b1b8f8
Fix gcc 8.1.1 compiler warnings
...
CC ../shared.o
../shared.c: In function ‘expand_macro’:
../shared.c:487:3: warning: ‘strncpy’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
strncpy(name, value, len);
^~~~~~~~~~~~~~~~~~~~~~~~~
../shared.c:484:9: note: length computed here
len = strlen(value);
^~~~~~~~~~~~~
../ui-shared.c: In function ‘cgit_repobasename’:
../ui-shared.c:136:2: warning: ‘strncpy’ specified bound 1024 equals destination size [-Wstringop-truncation]
strncpy(rvbuf, reponame, sizeof(rvbuf));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC ../ui-ssdiff.o
../ui-ssdiff.c: In function ‘replace_tabs’:
../ui-ssdiff.c:142:4: warning: ‘strncat’ output truncated copying between 1 and 8 bytes from a string of length 8 [-Wstringop-truncation]
strncat(result, spaces, 8 - (strlen(result) % 8));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-07-04 03:13:41 +02:00
Jason A. Donenfeld
c4167cbd65
cgitrc.5: document new signature notes
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-07-03 20:44:25 +02:00
Jason A. Donenfeld
b522a302c9
extra-head-content: introduce another option for meta tags
...
This is to support things like go-import meta tags, which are on a
per-repo basis.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-07-03 20:37:00 +02:00
Jason A. Donenfeld
03f6e34bb9
cgit: prepare repo before error pages
...
This fixes a crash when showing a list of all heads in the <select> box
in the header.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2018-02-12 23:25:29 +01:00
Jason A. Donenfeld
fd069b4ca0
filter: pipe_fh should be local
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2017-10-14 16:13:07 +02:00
Jason A. Donenfeld
87c47488d0
ui-repolist: properly sort by age
...
When empty repos exist, comparing them against an existing repo with a
good mtime might, with particular qsort implementations, not sort
correctly, because of this brokenness:
if (get_repo_modtime(r1, &t) && get_repo_modtime(r2, &t))
However, sorting by the age column works as expected, so anyway, to tidy
things up, we simply reuse that function.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2017-03-30 13:19:54 +02:00
Jason A. Donenfeld
5564a5d066
syntax-highlighting: replace invalid unicode with ?
2017-01-22 12:44:44 +01:00
Jason A. Donenfeld
8e9ddd21a5
Bump version.
2016-11-23 05:24:36 +01:00
Jason A. Donenfeld
ef3108656b
Makefile: remove extra space
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2016-10-01 23:35:04 +02:00
Jason A. Donenfeld
7d51120440
md2html: use utf-8 and flush output buffer
...
Otherwise we get the classic Python UTF-8 errors, and the text is all
out of order. While we're at it, switch to python3 so we only have to
support one set of oddball semantics.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
Suggested-by: Daniel Campbell <dlcampbell@gmx.com >
2016-06-17 12:28:03 +02:00
Jason A. Donenfeld
d88ec849c4
Hosted on HTTPS now
2016-06-07 14:49:35 +02:00
Jason A. Donenfeld
a6572ce176
Bump version.
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2016-06-07 14:45:04 +02:00
Jason A. Donenfeld
21bf30b043
ui-diff: action='.' is not correct
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2016-05-12 21:39:06 +02:00
Jason A. Donenfeld
c34e28835b
forms: action should not be empty
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2016-05-12 21:29:49 +02:00
Jason A. Donenfeld
e9cbdf6463
ui-shared: redirect should not exit early for cache
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2016-02-26 13:24:35 +01:00
Jason A. Donenfeld
09a3aa5ae7
about: path_info might not be valid
2016-02-26 13:14:52 +01:00
Jason A. Donenfeld
c424b5cb02
tabs: do not use target=_blank
2016-02-23 15:35:32 +01:00
Jason A. Donenfeld
46ff6e1993
css: fix indentation
2016-02-23 15:15:57 +01:00
Jason A. Donenfeld
1892cd9a60
md2html: Do syntax highlighting too
2016-02-23 15:00:05 +01:00
Jason A. Donenfeld
94c02bbf73
cmd: redirect empty about/ to homepage or summary
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2016-02-22 18:40:15 +01:00
Jason A. Donenfeld
5f2664f13c
ui-shared: add homepage to tabs
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2016-02-22 18:40:13 +01:00
Jason A. Donenfeld
a8b9ef8c1c
ui-stats: if we're going to abuse void*, do it safely
2016-02-08 14:35:47 +01:00
Jason A. Donenfeld
23f7dadaab
ui-tree: put reverse path in title
2016-01-18 16:13:29 +01:00
Jason A. Donenfeld
d3756bd7b0
syntax-highlighting: always use utf-8 to avoid ascii codec issues
2016-01-18 11:14:06 +01:00
Jason A. Donenfeld
e64d5e04c3
Bump version
2016-01-14 15:43:54 +01:00
Jason A. Donenfeld
c326f3eb02
ui-plain: add enable-html-serving flag
...
Unrestricts plain/ to contents likely to be executed by browser.
2016-01-14 15:42:56 +01:00
Jason A. Donenfeld
9ca2566972
ui-blob: set CSP just in case
2016-01-14 14:43:43 +01:00
Jason A. Donenfeld
92996ac2a6
ui-blob: always use generic mimetypes
2016-01-14 14:31:53 +01:00
Jason A. Donenfeld
1c581a0726
ui-blob: Do not accept mimetype from user
2016-01-14 14:31:13 +01:00
Jason A. Donenfeld
513b3863d9
ui-shared: prevent malicious filename from injecting headers
2016-01-14 14:28:37 +01:00
Jason A. Donenfeld
4291453ec3
ui-shared: Avoid new line injection into redirect header
2016-01-14 14:18:17 +01:00
Jason A. Donenfeld
4458abf641
filter: avoid integer overflow in authenticate_post
...
ctx.env.content_length is an unsigned int, coming from the
CONTENT_LENGTH environment variable, which is parsed by strtoul. The
HTTP/1.1 spec says that "any Content-Length greater than or equal to
zero is a valid value." By storing this into an int, we potentially
overflow it, resulting in the following bounding check failing, leading
to a buffer overflow.
Reported-by: Erik Cabetas <Erik@cabetas.com >
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2015-11-24 11:31:43 +01:00
Jason A. Donenfeld
ffe09621f2
about-formatting.sh: comment text out of date
2015-11-12 04:44:32 +01:00
Jason A. Donenfeld
3f9e14ada1
md2html: the default of stdin works fine
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2015-10-12 18:33:46 +02:00
Jason A. Donenfeld
c301899112
filters: misc cleanups
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2015-10-12 16:47:47 +02:00
Jason A. Donenfeld
ccb4254104
md2html: use pure python
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2015-10-12 16:42:54 +02:00
Jason A. Donenfeld
525c815cc4
filters: Simplify converters
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2015-10-09 15:13:35 +02:00
Jason A. Donenfeld
ad006918a5
Avoid use of non-reentrant functions
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2015-10-09 11:01:04 +02:00
Jason A. Donenfeld
73f199be3f
mime: rewrite detection function
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2015-08-17 14:49:28 +02:00
Jason A. Donenfeld
03de473354
cmd: no need for pre function hook now
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2015-08-14 15:54:32 +02:00
Jason A. Donenfeld
c0b5982303
redirect: cleanliness
2015-08-13 11:39:23 +02:00
Jason A. Donenfeld
622e64d5f2
redirect: be more careful for different cgi setups
2015-08-13 11:39:20 +02:00
Jason A. Donenfeld
2d386e227e
t0110: Chain together using &&
2015-08-12 15:16:05 +02:00
Jason A. Donenfeld
d7034806a4
about: always ensure page has a trailing slash
...
Otherwise we can't easily embed links to other /about/ pages.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2015-08-12 15:03:32 +02:00
Jason A. Donenfeld
cadbb69990
Bump version
2015-03-13 16:22:11 +01:00
Jason A. Donenfeld
7511f4b4df
filters: Add sample gentoo script
2015-03-13 14:51:22 +01:00
Jason A. Donenfeld
f3ab1f178f
cgit: remember to set up env vars before empty clone path
2015-03-09 17:42:12 +01:00
Jason A. Donenfeld
8eef4589d0
ui-shared: currenturl should take into account leading slash
2015-03-09 17:42:02 +01:00
Jason A. Donenfeld
198d84a9e3
Bump version
2015-03-05 15:58:28 +01:00
Jason A. Donenfeld
ecd6b7230c
simple-authentication.lua: tie secure cookies to field names
2015-03-05 15:51:22 +01:00
Jason A. Donenfeld
bd24832cd7
cgit: show clone URLs for empty repo
2015-03-05 02:32:13 +01:00
Jason A. Donenfeld
2e4a41e840
Make root handling sane again.
2015-03-03 17:33:34 +01:00
Jason A. Donenfeld
6bcda2f73d
ui-shared: Add current url helper function.
2015-03-03 17:18:42 +01:00
Jason A. Donenfeld
db4b735464
ui-shared: keep filter repolist page in pagination
2015-03-03 17:13:52 +01:00
Jason A. Donenfeld
c3473e8a5d
ui-repolist: use ctx.qry.url instead of rooturl, in case we're filtering
2015-03-03 17:06:48 +01:00
Jason A. Donenfeld
e14eee9ea5
ui-repolist: use correct owner query link
2015-03-03 16:53:11 +01:00
Jason A. Donenfeld
5e3e665d60
Bump verison
2015-02-15 22:12:12 +01:00
Jason A. Donenfeld
6e498de213
ui-clone.c: Fix off-by-one error in pack path
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2015-02-09 12:29:57 +01:00
Jason A. Donenfeld
b122730014
Revert "git: use xz compressed archive for download"
...
This reverts commit a87c9d8a97 .
We want to make OpenBSD people happy.
2014-12-24 12:50:11 +01:00
Jason A. Donenfeld
2159414a39
footer: link back to cgit home page
...
The footer has always been overrideable using the footer= in cgitrc, so
this won't anger anybody who cares about their footer.
2014-12-23 19:40:14 -07:00
Jason A. Donenfeld
efa2879ad7
cgitrc.5: we mean a cgi response, not request
2014-08-01 17:37:27 +02:00
Jason A. Donenfeld
eeaffc3343
Bump version.
2014-06-30 15:15:35 +02:00
Jason A. Donenfeld
88b9311323
Makefile: use more reliable git tarball mirror
2014-03-20 11:20:01 -06:00
Jason A. Donenfeld
f2fa9c56e2
Bump version.
2014-02-28 00:12:08 +01:00
Jason A. Donenfeld
4930611026
ui-refs: simplify cmp_age logic
...
The check in parse_user that eventually makes it into committer_date and
tagger_date is:
else if (mode == 3 && isdigit(*p)) {
*date = atol(p);
mode++;
}
Since isdigit('-') is always false, date will never be negative. Thus
the sign of this function:
static int cmp_age(int age1, int age2)
{
if (age1 != 0 && age2 != 0)
return age2 - age1;
if (age1 == 0 && age2 == 0)
return 0;
if (age1 == 0)
return +1;
return -1;
}
Will always be the same as the sign of this function:
static inline int cmp_age(int age1, int age2)
{
return age2 - age1;
}
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
Idea-by: Lukas Fleischer <cgit@cryptocrack.de >
2014-02-26 16:57:15 +01:00
Jason A. Donenfeld
2e8e9af1d4
Clean up cache documentation.
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-02-21 01:36:20 +01:00
Jason A. Donenfeld
8acfa51a8b
Makefile: suppress pkg-config error
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-02-20 20:06:29 +01:00
Jason A. Donenfeld
7e1c0ed2aa
diffstat: do not rely on uninitialized data
...
Right now if you visit:
<http://git.zx2c4.com/systemd/diff/src/udev/udev-builtin-input_id.c?id=bcfce235 >
you'll see that if you reload the page a few times, a bunch of times the
diffstat comes out with no lines being shown or changed. I'm not
currently sure what the cause of this is, but I suspect it might have to
do with this uninitialized data.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-02-20 19:48:24 +01:00
Jason A. Donenfeld
aa6d5b105d
simple-authentication: style
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-23 00:58:07 +01:00
Jason A. Donenfeld
f759cc0f08
tests: only do lua tests if lua is compiled-in
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-20 13:11:10 +01:00
Jason A. Donenfeld
6a1563343c
cgit: add --version argument for printing info
...
We need this to do runtime tests for make test.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-20 13:05:08 +01:00
Jason A. Donenfeld
ea7210bef3
README: document pkg-config for luajit
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-19 15:07:56 +01:00
Jason A. Donenfeld
6952f164c1
makefile: bump version
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-17 16:09:16 +01:00
Jason A. Donenfeld
bdbe03af61
mailmap: source before lighttpd
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-17 16:04:27 +01:00
Jason A. Donenfeld
bb3cc0d966
ui-shared: do not allow negative minutes
...
Do to timestamp differences, sometimes cgit would should "-0 min", which
doesn't make any sense.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-17 15:41:41 +01:00
Jason A. Donenfeld
9dde6d38e9
auth: document tweakables in lua script
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-17 15:34:44 +01:00
Jason A. Donenfeld
a2b6b37175
repolist: make owner clickable to search
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-17 14:01:27 +01:00
Jason A. Donenfeld
3cbbb8ea39
ui-shared: move about tab all the way to the left
...
There were no objections (at the time of committing this):
http://lists.zx2c4.com/pipermail/cgit/2013-May/001393.html
http://lists.zx2c4.com/pipermail/cgit/2014-January/001904.html
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-17 13:53:37 +01:00
Jason A. Donenfeld
9786f4613d
filter: don't forget to reap the auth filter
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-17 13:53:02 +01:00
Jason A. Donenfeld
9999b0a3e9
cgit.c: free tmp variable
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-17 00:48:17 +01:00
Jason A. Donenfeld
a431326e8f
auth: have cgit calculate login address
...
This way we're sure to use virtual root, or any other strangeness
encountered.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-16 23:21:54 +01:00
Jason A. Donenfeld
df00ab1096
auth: lua string comparisons are time invariant
...
By default, strings are compared by hash, so we can remove this comment.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-16 19:47:35 +01:00
Jason A. Donenfeld
b826537cb4
authentication: use hidden form instead of referer
...
This also gives us some CSRF protection. Note that we make use of the
hmac to protect the redirect value.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-16 12:13:39 +01:00
Jason A. Donenfeld
d6e9200cc3
auth: add basic authentication filter framework
...
This leverages the new lua support. See
filters/simple-authentication.lua for explaination of how this works.
There is also additional documentation in cgitrc.5.txt.
Though this is a cookie-based approach, cgit's caching mechanism is
preserved for authenticated pages.
Very plugable and extendable depending on user needs.
The sample script uses an HMAC-SHA1 based cookie to store the
currently logged in user, with an expiration date.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-16 02:28:12 +01:00
Jason A. Donenfeld
5bda21faf4
email-gravatar: do not scale icons up
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-14 18:57:51 +01:00
Jason A. Donenfeld
6ca734da8f
filter: allow returning exit code from filter
...
Filters can now indicate a status back to cgit by means of the exit code
for exec, or the return value from close for Lua.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-14 18:09:52 +01:00
Jason A. Donenfeld
a9a7f68244
makefile: only display lua message once
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2014-01-14 13:47:28 +01:00