<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cgit/ui-repolist.c, branch master</title>
<subtitle>A hyperfast web frontend for git repositories written in C.</subtitle>
<id>http://git.cetero.st/cgit/atom/ui-repolist.c?h=master</id>
<link rel='self' href='http://git.cetero.st/cgit/atom/ui-repolist.c?h=master'/>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/'/>
<updated>2026-05-04T16:28:27Z</updated>
<entry>
<title>cgit: truncate all config values at the newline</title>
<updated>2026-05-04T16:28:27Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2026-05-04T16:13:13Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=ed05b1054df10a2fbc68000cfdd429daec03a456'/>
<id>urn:sha1:ed05b1054df10a2fbc68000cfdd429daec03a456</id>
<content type='text'>
These would be largely invalid anyway (save, I suppose, for Linux file
paths that technically can contain new lines).

The actual problem is that these get printed back out into cached -- and
trusted -- cgitrc files, and if the fields have newlines, the git-config
way of less trusted users configuring repos on a shared system can be
abused to inject newlines, which then can be used to smuggle global
options (including filters, which execute code) into the cached cgitrc.

So now, only ever duplicate up to the newline, when dealing with these
inputs.

Reported-by: Adrian Denkiewicz &lt;adrian@doyensec.com&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>ui-repolist,ui-shared: remove redundant title on repo anchors</title>
<updated>2022-12-19T15:13:24Z</updated>
<author>
<name>Chris Mayo</name>
<email>aklhfex@gmail.com</email>
</author>
<published>2019-03-15T20:17:05Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=afffc3e772a7b0c9d729f330ef2c9900c4343b63'/>
<id>urn:sha1:afffc3e772a7b0c9d729f330ef2c9900c4343b63</id>
<content type='text'>
The title attribute was being set to the same value as the anchor
element text.

Signed-off-by: Chris Mayo &lt;aklhfex@gmail.com&gt;
Reviewed-by: Eric Wong &lt;e@80x24.org&gt;
Reviewed-by: Petr Vorel &lt;petr.vorel@gmail.com&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>ui-repolist: do not return unsigned (negative) value</title>
<updated>2019-11-22T12:35:50Z</updated>
<author>
<name>Christian Hesse</name>
<email>mail@eworm.de</email>
</author>
<published>2019-11-22T10:09:50Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=583aa5d80eb01075c0f3f35df37b9144a0c9651e'/>
<id>urn:sha1:583aa5d80eb01075c0f3f35df37b9144a0c9651e</id>
<content type='text'>
The function read_agefile() returns time_t, which is a signed datatime.
We should not return unsigned (negative) value here.

Reported-by: Johannes Stezenbach &lt;js@linuxtv.org&gt;
Signed-off-by: Christian Hesse &lt;mail@eworm.de&gt;
</content>
</entry>
<entry>
<title>global: make 'char *path' const where possible</title>
<updated>2019-06-05T13:37:49Z</updated>
<author>
<name>Christian Hesse</name>
<email>mail@eworm.de</email>
</author>
<published>2019-01-02T16:25:01Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=ccba7eb9d0c43ffe99178ab6632dc3794f887309'/>
<id>urn:sha1:ccba7eb9d0c43ffe99178ab6632dc3794f887309</id>
<content type='text'>
Signed-off-by: Christian Hesse &lt;mail@eworm.de&gt;
</content>
</entry>
<entry>
<title>global: remove functionality we deprecated for cgit v1.0</title>
<updated>2018-06-27T16:13:03Z</updated>
<author>
<name>Christian Hesse</name>
<email>mail@eworm.de</email>
</author>
<published>2018-06-18T09:48:43Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=54d37dc154f5308459df0a90c81dabd0245b6c17'/>
<id>urn:sha1:54d37dc154f5308459df0a90c81dabd0245b6c17</id>
<content type='text'>
The man page states these were deprecated for v1.0. We are past v1.1,
so remove the functionality.

Signed-off-by: Christian Hesse &lt;mail@eworm.de&gt;
Reviewed-by: John Keeping &lt;john@keeping.me.uk&gt;
</content>
</entry>
<entry>
<title>html: html_ntxt with no ellipsis</title>
<updated>2017-10-03T18:19:34Z</updated>
<author>
<name>Jeff Smith</name>
<email>whydoubt@gmail.com</email>
</author>
<published>2017-10-02T04:39:05Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=70787254b270b1505aa8427813f64131be5df86c'/>
<id>urn:sha1:70787254b270b1505aa8427813f64131be5df86c</id>
<content type='text'>
For implementing a ui-blame page, there is need for a function that
outputs a selection from a block of text, transformed for HTML output,
but with no further modifications or additions.

Signed-off-by: Jeff Smith &lt;whydoubt@gmail.com&gt;
Reviewed-by: John Keeping &lt;john@keeping.me.uk&gt;
</content>
</entry>
<entry>
<title>Remove unused variable from sort_section()</title>
<updated>2017-04-05T04:38:39Z</updated>
<author>
<name>Lukas Fleischer</name>
<email>lfleischer@lfos.de</email>
</author>
<published>2017-04-05T04:38:27Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=7ebdb30fdf91d1f63b4fb07e54b089136de5507b'/>
<id>urn:sha1:7ebdb30fdf91d1f63b4fb07e54b089136de5507b</id>
<content type='text'>
Signed-off-by: Lukas Fleischer &lt;lfleischer@lfos.de&gt;
</content>
</entry>
<entry>
<title>ui-repolist: properly sort by age</title>
<updated>2017-03-30T11:19:54Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2017-03-30T11:19:50Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=87c47488d02fcace4da0d468cd9ddd1651b7949e'/>
<id>urn:sha1:87c47488d02fcace4da0d468cd9ddd1651b7949e</id>
<content type='text'>
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, &amp;t) &amp;&amp; get_repo_modtime(r2, &amp;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 &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>css: highlight even table rows and skip empty rows</title>
<updated>2016-11-23T04:20:42Z</updated>
<author>
<name>Christian Hesse</name>
<email>mail@eworm.de</email>
</author>
<published>2016-07-06T20:42:36Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=81509a228c7428abeb56ecacb45ccd8dc8fc6209'/>
<id>urn:sha1:81509a228c7428abeb56ecacb45ccd8dc8fc6209</id>
<content type='text'>
This is stolen from kernel.org css [0].

[0] https://git.kernel.org/cgit-korg-0.10.1.css
</content>
</entry>
<entry>
<title>ui-repolist: fix memory leak</title>
<updated>2016-10-12T12:13:10Z</updated>
<author>
<name>Christian Hesse</name>
<email>mail@eworm.de</email>
</author>
<published>2016-10-10T18:17:51Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=7fea585e252ee7a584e4b2d679009518bab48ebe'/>
<id>urn:sha1:7fea585e252ee7a584e4b2d679009518bab48ebe</id>
<content type='text'>
</content>
</entry>
</feed>
