aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* shared.c: Only setenv() if value is non-nullLukas Fleischer2012-01-03
| | | | | | | | | | | | | | Some setenv() implementations (e.g. the one in OpenBSD's stdlib) segfault if we pass a NULL value. Only set environment variables if the corresponding settings are defined to avoid this. Note that this is a minor behaviour change as environment variables were supposed to be set to an empty string if a setting was undefined. Given that this feature isn't part of any official release yet, there's no need to worry about backwards compatibility, really. Change the documentation accordingly. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* shared.c: Remove unused "linux/limits.h" includeLukas Fleischer2012-01-03
| | | | | | | This isn't used anywhere and prevents the code from being compiled on other platforms, such as *BSD. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* Merge branch 'stable'Lars Hjemli2011-07-22
|\
| * Fix potential XSS vulnerability in rename hintLukas Fleischer2011-07-22
| | | | | | | | | | | | | | | | | | The file name displayed in the rename hint should be escaped to avoid XSS. Note that this vulnerability is only applicable when an attacker has gained push access to the repository. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * Remove dead initialization in cgit_parse_commit()Lukas Fleischer2011-07-22
| | | | | | | | | | | | | | | | The value stored to "t" during its initialization gets overwritten in any case, so just leave it uninitialized. Spotted by clang-analyzer. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Lars Hjemli2011-07-21
|\|
| * CGIT 0.9.0.2v0.9.0.2Lars Hjemli2011-07-21
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * html.c: avoid out-of-bounds access for url_escape_tableEric Wong2011-07-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a segfault for me with with -O2 optimization on x86 with gcc (Debian 4.4.5-8) 4.4.5 I can reliably reproduce it with the following parameters when pointed to the git.git repository: PATH_INFO='/git-core.git/diff/' QUERY_STRING='id=2b93bfac0f5bcabbf60f174f4e7bfa9e318e64d5&id2=d6da71a9d16b8cf27f9d8f90692d3625c849cbc8' Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Lars Hjemli2011-07-21
|\|
| * tests: fix failures when CDPATH is setFerry Huberts2011-07-21
| | | | | | | | | | | | | | | | | | | | Some tests would otherwise fail because commands such as cd trash/repos/foo && git rev-list --reverse HEAD | head -1 would return 2 lines instead of 1: the 'cd' command also prints the path when CDPATH is set. Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Makefile: fix oversight of not using $(DESTDIR) in uninstallFerry Huberts2011-07-19
| | | | | | | | | | Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | commit-links.sh: improve regular expressionsFerry Huberts2011-07-19
| | | | | | | | | | | | | | | | | | | | | | The default length for sha1 abbreviations in git is 7. A '#num' at the beginning of the commit message is now recognised, a ':#num' as well, etc.: a '#num' anywhere is now converted to a link. Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Lars Hjemli2011-06-18
|\|
| * cgit.c: improve error message when git repo cannot be accessedLars Hjemli2011-06-18
| | | | | | | | | | | | | | | | | | | | | | | | | | The current 'Not a git repository' error message is not very helpful, since it doesn't state the cause of the problem. This patch uses errno to provide a hint of the underlying problem. It would have been even better to give the exact cause (e.g. for ENOENT it would be nice to know which file/directory is missing), but that would require reimplementing setup_git_directory_gently() which seems a bit overkill. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Lars Hjemli2011-06-15
|\|
| * cgitrc.5.txt: document repo.module-linkLars Hjemli2011-06-15
| | | | | | | | | | | | | | The global module-link option can be overridden per repo, but this has never been documented. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'lh/clone-url'Lars Hjemli2011-06-13
|\ \
| * | cgit.c: add 'clone-url' setting with support for macro expansionLars Hjemli2011-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current 'clone-prefix' setting has some known issues: * All repos get the same 'clone-prefix' value since the setting is not adopted during repo registration (in cgitrc, or during scan-path traversal), but only when the setting is used. * The generated clone-urls for a repo is a combination of 'clone-prefix', a slash and the repo url. This doesn't work well with e.g. ssh-style urls like 'git@example.org:repo.git', since the inserted slash will make the repo relative to the filesystem root. * If 'remove-suffix' is enabled, the generated clone-urls will not work for cloning (except for http-urls to cgit itself) since they miss the '.git' suffix. The new 'clone-url' setting is designed to avoid the mentioned issues: * Each repo adopts the default 'clone-url' when the repo is defined. This allows different groups of repos to adopt different values. * The clone-urls for a repo is generated by expanding environment variables in a string template without inserting arbitrary characters, hence any kind of clone-url can be generated. * Macro expansion also eases the 'remove-suffix' pain since it's now possible to define e.g. 'clone-url=git://foo.org/$CGIT_REPO_URL.git' for a set of repos. A furter improvement would be to define e.g. $CGIT_REPO_SUFFIX to '.git' for all repos which had their url prettified, or to store the original $CGIT_REPO_URL in e.g. $CGIT_REPO_REAL_URL before suffix removal. Reviewed-by: Ferry Huberts <mailings@hupie.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | cgit.c: always setup cgit repo environment variablesLars Hjemli2011-06-13
|/ / | | | | | | | | | | | | | | | | | | | | | | When cgit learned to setup environment variables for certain repo settings before invoking a filter process, the setup occurred inside cgit_open_filter(). This patch moves the setup out of cgit_open_filter() and into prepare_repo_cmd() to prepare for additional uses of these variables. Reviewed-by: Ferry Huberts <mailings@hupie.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | cgitrc.5.txt: reformat the "FILTER API" sectionLars Hjemli2011-06-13
| | | | | | | | | | | | | | | | | | This patch makes the generated man-page for the filer api section more similar to the other sections. Also, the bulleted list of environment variables wasn't rendered correctly (with asciidoc 8.5.2), without an empty line before the first item. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Lars Hjemli2011-06-13
|\| | | | | | | | | Conflicts: cgitrc.5.txt
| * cgitrc.5.txt: describe macro expansion of cgitrc optionsLars Hjemli2011-06-13
| | | | | | | | | | | | This is a new feature in cgit-0.9 which was formerly undocumented. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Lars Hjemli2011-06-13
|\|
| * README: update some stale information/add some newLars Hjemli2011-06-13
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Lars Hjemli2011-06-13
|\|
| * CGIT 0.9.0.1v0.9.0.1Lars Hjemli2011-06-13
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Lars Hjemli2011-06-12
|\|
| * ui-plain.c: fix html and links generated by print_dir() and print_dir_entry()Lars Hjemli2011-06-12
| | | | | | | | | | | | | | | | | | | | | | This patch fixes the following issues: * the base argument usually isn't zero-terminated, so printing base without considering baselen will usually generate random garbage * when the current url represents a directory but doesn't end in a slash, relative urls would be incorrect * using unescaped paths allows XSS Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Lars Hjemli2011-06-06
|\|
| * scan-tree.c: avoid memory leakJamie Couture2011-06-06
| | | | | | | | | | | | | | | | No references are kept to the memory pointed to by the 'rel' variable, so it should be free()'d before returning from add_repo(). Signed-off-by: Jamie Couture <jamie.couture@gmail.com> Signed-off-by: Lars Hjemli <larsh@hjemli.net>
* | Merge branch 'stable'Lars Hjemli2011-06-02
|\|
| * ui-log.c: do not link from age columnLars Hjemli2011-06-02
| | | | | | | | | | | | | | The link url wasn't properly escaped, and since the link was identical to the one used on the commit message it didn't serve any special purpose. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * ui-snapshot.c: remove debug cruftLars Hjemli2011-06-02
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-stats.c: fix invalid htmlLars Hjemli2011-05-30
| | | | | | | | | | | | Found by http://validator.w3.org. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Lars Hjemli2011-05-30
|\|
| * Properly escape ampersands inside HTML attributesLukas Fleischer2011-05-30
| | | | | | | | | | | | | | | | | | Ampersands ("&") appearing inside HTML attributes need to be translated to "&amp;". Otherwise, invalid XHTML will be generated at various places, such as at tree views containing links to submodules. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui_repolist: get modtime from packed-refs as fallbackFerry Huberts2011-05-30
| | | | | | | | | | | | | | | | | | | | | | When no modtime could be determined then as a final fallback try to get it from the packed-refs. This will show an idle time when a repository has been packed with all refs in the packed-refs. Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'lh/panel'Lars Hjemli2011-05-23
|\ \
| * | ui-stats.c: create a control panel for stat optionsLars Hjemli2011-03-07
| | | | | | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | ui-diff.c: create a control panel for diff optionsLars Hjemli2011-03-06
| | | | | | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | html.c: add html_intoption()Lars Hjemli2011-03-06
| | | | | | | | | | | | | | | | | | This is similar to html_option, but for int values. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Merge branch 'fh/filter-api'Lars Hjemli2011-05-23
|\ \ \ | | | | | | | | | | | | | | | | Conflicts: cgit.c
| * | | shared.c: use execvp() to execute filter commandsLars Hjemli2011-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reintroduces the use of execvp(), since the filter commands doesn't always contain an absolute path (i.e. snapshot compression filters). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | | filters: document environment variables in filter scriptsFerry Huberts2011-03-26
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | | cgit_open_filter: hand down repo configuration to scriptFerry Huberts2011-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The environment variables can be used to (for example) resolve the following situation: Suppose a server setup in which each repository has a trac instance; the commit filter needs to know with which repository it's dealing in order to be able to resolve the #123 ticket numbers in the commit messages into hyperlinks into the correct trac instance. Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | | cgit_open_filter: also take the repo as a parameterFerry Huberts2011-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To prepare for handing repo configuration to the filter script that is executed. Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | | new_filter: determine extra_args from filter typeFerry Huberts2011-03-26
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the number of extra arguments is linked hard to the type of the filter. This is also logical since it would be confusing to have a different number of arguments for the same type of filter depending on the context under which the filter is run (unless ofcourse one the parameters would make the context clear, which is currently not the case). Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Merge branch 'stable'Lars Hjemli2011-05-23
|\ \ \ | | |/ | |/|
| * | fix virtual-root if script-name is ""Mark Lodato2011-05-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In d0cb841 (Avoid trailing slash in virtual-root), virtual-root was set from script-name using trim_end(). However, if script-name was the empty string (""), which happens when cgit is used to serve the root path on a domain (/), trim_end() returns NULL and cgit acts like virtual-root is not available. Now, set virtual-root to "" in this case, which fixes this bug. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | ui-repolist.c: do not return random/stale data from read_agefileLars Hjemli2011-05-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When git/date.c:parse_date() cannot parse its input it returns -1. But read_agefile() checks if the result is different from zero, essentialy returning random data from the date buffer when parsing fails. This patch fixes the issue by verifying that the result from parse_date() is positive. Noticed-by: Julius Plenz <plenz@cis.fu-berlin.de> Signed-off-by: Lars Hjemli <hjemli@gmail.com>