<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cgit/shared.c, branch v0.9.2</title>
<subtitle>A hyperfast web frontend for git repositories written in C.</subtitle>
<id>http://git.cetero.st/cgit/atom/shared.c?h=v0.9.2</id>
<link rel='self' href='http://git.cetero.st/cgit/atom/shared.c?h=v0.9.2'/>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/'/>
<updated>2013-05-22T10:53:06Z</updated>
<entry>
<title>shared.c: use die_errno() where appropriate</title>
<updated>2013-05-22T10:53:06Z</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2013-05-18T15:21:36Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=1e9f1ee64e5f8f75a361260a2165996bc137b961'/>
<id>urn:sha1:1e9f1ee64e5f8f75a361260a2165996bc137b961</id>
<content type='text'>
This replaces some code that is re-implementing die_errno by just
calling the function.

Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
</content>
</entry>
<entry>
<title>Add branch-sort and repo.branch-sort options.</title>
<updated>2013-04-10T12:48:26Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2013-04-08T14:57:12Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=389cc17357e2040c9542d3e085f64a8d2f085e9a'/>
<id>urn:sha1:389cc17357e2040c9542d3e085f64a8d2f085e9a</id>
<content type='text'>
When set to "name", branches are sorted by name, which is the current
default. When set to "age", branches are sorted by the age of the
repository.

This feature was requested by Konstantin Ryabitsev for use on
kernel.org.

Proposed-by: Konstantin Ryabitsev &lt;mricon@kernel.org&gt;
</content>
</entry>
<entry>
<title>shared.c: add strbuf_ensure_end</title>
<updated>2013-04-08T14:10:11Z</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2013-04-07T13:03:47Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=d2e20e38141c882e46eaa77f172fc2ae37a19d3b'/>
<id>urn:sha1:d2e20e38141c882e46eaa77f172fc2ae37a19d3b</id>
<content type='text'>
This is a small helper so that we can easily ensure that a strbuf ends
with the specified character.

Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
</content>
</entry>
<entry>
<title>Fix out-of-bounds memory accesses with virtual_root=""</title>
<updated>2013-04-08T13:59:46Z</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2013-04-01T18:03:34Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=b1f17f168b91d709c0c0e62608de301a36f06da9'/>
<id>urn:sha1:b1f17f168b91d709c0c0e62608de301a36f06da9</id>
<content type='text'>
The CGit configuration variable virtual_root is normalized so that it
does not have a trailing '/' character, but it is allowed to be empty
(the empty string and NULL have different meanings here) and there is
code that is insufficiently cautious when checking if it ends in a '/':

	if (virtual_root[strlen(virtual_root) - 1] != '/')

Clearly this check is redundant, but rather than simply removing it we
get a slight efficiency improvement by switching the normalization so
that the virtual_root variable always ends in '/'.  Do this with a new
"ensure_end" helper.

Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
</content>
</entry>
<entry>
<title>Free reflists after usage</title>
<updated>2013-03-05T00:55:12Z</updated>
<author>
<name>Lukas Fleischer</name>
<email>cgit@cryptocrack.de</email>
</author>
<published>2013-03-04T12:25:33Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=1268afe83692cb8a9ea839ab979d82458da2d03d'/>
<id>urn:sha1:1268afe83692cb8a9ea839ab979d82458da2d03d</id>
<content type='text'>
Free reflists in cgit_print_branches() and in cgit_print_tags() before
returning reflist structures to the stack.

This fixes following memory leaks seen with "PATH_INFO=/cgit/refs/":

    ==5710== 1,312 (32 direct, 1,280 indirect) bytes in 1 blocks are definitely lost in loss record 63 of 71
    ==5710==    at 0x4C2C04B: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==5710==    by 0x4C2C2FF: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==5710==    by 0x46CA9B: xrealloc (wrapper.c:100)
    ==5710==    by 0x40AAA6: cgit_add_ref (shared.c:156)
    ==5710==    by 0x40ABC4: cgit_refs_cb (shared.c:186)
    ==5710==    by 0x44BCBA: do_one_ref (refs.c:527)
    ==5710==    by 0x44D240: do_for_each_ref_in_dir (refs.c:553)
    ==5710==    by 0x44D6BA: do_for_each_ref (refs.c:1298)
    ==5710==    by 0x410FE2: cgit_print_branches (ui-refs.c:191)
    ==5710==    by 0x4111E9: cgit_print_refs (ui-refs.c:244)
    ==5710==    by 0x407C85: refs_fn (cmd.c:105)
    ==5710==    by 0x405DDF: process_request (cgit.c:566)
    ==5710==
    ==5710== 6,846 (256 direct, 6,590 indirect) bytes in 1 blocks are definitely lost in loss record 68 of 71
    ==5710==    at 0x4C2C25E: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==5710==    by 0x46CA9B: xrealloc (wrapper.c:100)
    ==5710==    by 0x40AAA6: cgit_add_ref (shared.c:156)
    ==5710==    by 0x40ABC4: cgit_refs_cb (shared.c:186)
    ==5710==    by 0x44BCBA: do_one_ref (refs.c:527)
    ==5710==    by 0x44D240: do_for_each_ref_in_dir (refs.c:553)
    ==5710==    by 0x44D6EC: do_for_each_ref (refs.c:1288)
    ==5710==    by 0x4110D5: cgit_print_tags (ui-refs.c:218)
    ==5710==    by 0x4111FD: cgit_print_refs (ui-refs.c:246)
    ==5710==    by 0x407C85: refs_fn (cmd.c:105)
    ==5710==    by 0x405DDF: process_request (cgit.c:566)
    ==5710==    by 0x407490: cache_process (cache.c:322)

Signed-off-by: Lukas Fleischer &lt;cgit@cryptocrack.de&gt;
</content>
</entry>
<entry>
<title>Mark several functions/variables static</title>
<updated>2013-03-05T00:50:39Z</updated>
<author>
<name>Lukas Fleischer</name>
<email>cgit@cryptocrack.de</email>
</author>
<published>2013-03-04T07:52:33Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=bafab423f20bc1448b293842c235965e1681f07e'/>
<id>urn:sha1:bafab423f20bc1448b293842c235965e1681f07e</id>
<content type='text'>
Spotted by parsing the output of `gcc -Wmissing-prototypes [...]`.

Signed-off-by: Lukas Fleischer &lt;cgit@cryptocrack.de&gt;
</content>
</entry>
<entry>
<title>White space around control verbs.</title>
<updated>2013-03-04T14:12:54Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2013-03-04T04:21:33Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=bdae1d8a8d39206ac75ab86f8e9ef53b2f29432e'/>
<id>urn:sha1:bdae1d8a8d39206ac75ab86f8e9ef53b2f29432e</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>Fix several whitespace errors</title>
<updated>2013-03-04T00:12:48Z</updated>
<author>
<name>Lukas Fleischer</name>
<email>cgit@cryptocrack.de</email>
</author>
<published>2013-03-03T15:04:29Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=53bc747d311d18642fa3ad0cc0de34f3899ed1f4'/>
<id>urn:sha1:53bc747d311d18642fa3ad0cc0de34f3899ed1f4</id>
<content type='text'>
* Remove whitespace at the end of lines.
* Replace space indentation by tabs.
* Add whitespace before/after several operators ("+", "-", "*", ...)
* Add whitespace to assignments ("foo = bar;").
* Fix whitespace in parameter lists ("foobar(foo, bar, 42)").

Signed-off-by: Lukas Fleischer &lt;cgit@cryptocrack.de&gt;
</content>
</entry>
<entry>
<title>Update git to v1.7.5.4</title>
<updated>2013-03-02T15:38:03Z</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2013-03-02T12:32:10Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=bfc14d067da0fdf65f306fcd9a65829d9694dbeb'/>
<id>urn:sha1:bfc14d067da0fdf65f306fcd9a65829d9694dbeb</id>
<content type='text'>
Some changes to diff options:

- no_merges has become the more general max_parents
- path restriction now uses struct pathspec

Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
</content>
</entry>
<entry>
<title>ui-log: Add "commit-sort" option for controlling commit ordering</title>
<updated>2012-10-17T14:30:29Z</updated>
<author>
<name>Tobias Bieniek</name>
<email>Tobias.Bieniek@gmx.de</email>
</author>
<published>2012-10-13T14:10:30Z</published>
<link rel='alternate' type='text/html' href='http://git.cetero.st/cgit/commit/?id=792f813d342013124ce40142fef4afee3ff00df3'/>
<id>urn:sha1:792f813d342013124ce40142fef4afee3ff00df3</id>
<content type='text'>
This makes it possible to use strict commit date ordering or strict
topological ordering by passing the corresponding flags to "git log".

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
</feed>
