Tue, 22 Mar 2016 17:27:27 -0700 convert: test for shell injection in git calls (SEC) stable 3.7.3
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:27:27 -0700] rev 28663
convert: test for shell injection in git calls (SEC) CVE-2016-3069 (5/5) Before recent refactoring we were not escaping calls to git at all which made such injections possible. Let's have a test for that to avoid this problem in the future. Reported by Blake Burkhart.
Tue, 22 Mar 2016 17:05:11 -0700 convert: rewrite gitpipe to use common.commandline (SEC) stable
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:05:11 -0700] rev 28662
convert: rewrite gitpipe to use common.commandline (SEC) CVE-2016-3069 (4/5)
Tue, 22 Mar 2016 17:05:11 -0700 convert: dead code removal - old git calling functions (SEC) stable
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:05:11 -0700] rev 28661
convert: dead code removal - old git calling functions (SEC) CVE-2016-3069 (3/5)
Tue, 22 Mar 2016 17:05:11 -0700 convert: rewrite calls to Git to use the new shelling mechanism (SEC) stable
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:05:11 -0700] rev 28660
convert: rewrite calls to Git to use the new shelling mechanism (SEC) CVE-2016-3069 (2/5) One test output changed because we were ignoring git return code in numcommits before.
Tue, 22 Mar 2016 17:05:11 -0700 convert: add new, non-clowny interface for shelling out to git (SEC) stable
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:05:11 -0700] rev 28659
convert: add new, non-clowny interface for shelling out to git (SEC) CVE-2016-3069 (1/5) To avoid shell injection and for the sake of simplicity let's use the common.commandline for calling git.
Sun, 20 Mar 2016 21:52:21 -0700 subrepo: set GIT_ALLOW_PROTOCOL to limit git clone protocols (SEC) stable
Mateusz Kwapich <mitrandir@fb.com> [Sun, 20 Mar 2016 21:52:21 -0700] rev 28658
subrepo: set GIT_ALLOW_PROTOCOL to limit git clone protocols (SEC) CVE-2016-3068 (1/1) Git's git-remote-ext remote helper provides an ext:: URL scheme that allows running arbitrary shell commands. This feature allows implementing simple git smart transports with a single shell shell command. However, git submodules could clone arbitrary URLs specified in the .gitmodules file. This was reported as CVE-2015-7545 and fixed in git v2.6.1. However, if a user directly clones a malicious ext URL, the git client will still run arbitrary shell commands. Mercurial is similarly effected. Mercurial allows specifying git repositories as subrepositories. Git ext:: URLs can be specified as Mercurial subrepositories allowing arbitrary shell commands to be run on `hg clone ...`. The Mercurial community would like to thank Blake Burkhart for reporting this issue. The description of the issue is copied from Blake's report. This commit changes submodules to pass the GIT_ALLOW_PROTOCOL env variable to git commands with the same list of allowed protocols that git submodule is using. When the GIT_ALLOW_PROTOCOL env variable is already set, we just pass it to git without modifications.
Wed, 16 Mar 2016 17:30:26 -0700 parsers: detect short records (SEC) stable
Matt Mackall <mpm@selenic.com> [Wed, 16 Mar 2016 17:30:26 -0700] rev 28657
parsers: detect short records (SEC) CVE-2016-3630 (2/2) This addresses part of a vulnerability in binary delta application.
Wed, 16 Mar 2016 17:29:29 -0700 parsers: fix list sizing rounding error (SEC) stable
Matt Mackall <mpm@selenic.com> [Wed, 16 Mar 2016 17:29:29 -0700] rev 28656
parsers: fix list sizing rounding error (SEC) CVE-2016-3630 (1/2) This addresses part of a vulnerability in application of binary deltas.
Mon, 28 Mar 2016 17:16:00 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 28 Mar 2016 17:16:00 -0500] rev 28655
merge with stable
Mon, 28 Mar 2016 09:12:03 +0200 debugsetparents: remove redundant invocations of begin/endparentchange
liscju <piotr.listkiewicz@gmail.com> [Mon, 28 Mar 2016 09:12:03 +0200] rev 28654
debugsetparents: remove redundant invocations of begin/endparentchange Method localrepo.setparents invokes begin/endparentchange internally, so there is no need to invoke it explicitly in debugsetparents.
Sun, 27 Mar 2016 13:13:19 -0700 sslutil: add docstring to wrapsocket()
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 13:13:19 -0700] rev 28653
sslutil: add docstring to wrapsocket() Security should not be opaque.
Sun, 27 Mar 2016 11:39:39 -0700 sslutil: remove indentation in wrapsocket declaration
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 11:39:39 -0700] rev 28652
sslutil: remove indentation in wrapsocket declaration It is no longer needed because we have a single code path.
Sun, 27 Mar 2016 14:18:32 -0700 sslutil: always use SSLContext
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 14:18:32 -0700] rev 28651
sslutil: always use SSLContext Now that we have a fake SSLContext instance, we can unify the code paths for wrapping sockets to always use the SSLContext APIs. Because this is security code, I've retained the try..except to make the diff easier to read. It will be removed in the next patch. I took the liberty of updating the inline docs about supported protocols and how the constants work because this stuff is important and needs to be explicitly documented.
Sun, 27 Mar 2016 14:08:52 -0700 sslutil: move _canloaddefaultcerts logic
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 14:08:52 -0700] rev 28650
sslutil: move _canloaddefaultcerts logic We now have a newer block accessing SSLContext. Let's move this code to make subsequent refactorings of the former block easier.
Sun, 27 Mar 2016 13:50:34 -0700 sslutil: implement SSLContext class
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 13:50:34 -0700] rev 28649
sslutil: implement SSLContext class Python <2.7.9 doesn't have a ssl.SSLContext class. In this patch, we implement the interface to the class so we can have a unified code path for all supported versions of Python. This is similar to the approach that urllib3 takes.
Sun, 27 Mar 2016 10:47:24 -0700 sslutil: store OP_NO_SSL* constants in module scope
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 10:47:24 -0700] rev 28648
sslutil: store OP_NO_SSL* constants in module scope An upcoming patch will introduce a global SSLContext type so we have a single function used to wrap sockets. Prepare for that by introducing module level constants for disabling SSLv2 and SSLv3.
Sun, 27 Mar 2016 14:07:06 -0700 sslutil: better document state of security/ssl module
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 14:07:06 -0700] rev 28647
sslutil: better document state of security/ssl module Pythons older than 2.7.9 are lacking the modern ssl module and have horrible security. Let's document this explicitly.
Mon, 28 Mar 2016 01:57:44 +0530 tests: make tinyproxy.py use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 28 Mar 2016 01:57:44 +0530] rev 28646
tests: make tinyproxy.py use print_function
Mon, 28 Mar 2016 04:02:07 +0000 run-tests: use canonpath for with-python3
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 04:02:07 +0000] rev 28645
run-tests: use canonpath for with-python3
Mon, 28 Mar 2016 04:01:21 +0000 run-tests: add canonpath function
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 04:01:21 +0000] rev 28644
run-tests: add canonpath function consistently use realpath+expanduser
Mon, 28 Mar 2016 03:40:30 +0000 tests: glob py3 line numbers
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 03:40:30 +0000] rev 28643
tests: glob py3 line numbers Since not everyone is running py3.5 and code changes periodically, avoid pinning line numbers for invalid syntax errors.
Mon, 28 Mar 2016 03:35:08 +0000 tests: update py3.5 output
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 03:35:08 +0000] rev 28642
tests: update py3.5 output 6d7da0901a28 removed one item...
Thu, 17 Mar 2016 14:50:29 +0000 summary: move mergemod before parents to give access to ms
timeless <timeless@mozdev.org> [Thu, 17 Mar 2016 14:50:29 +0000] rev 28641
summary: move mergemod before parents to give access to ms
Thu, 17 Mar 2016 00:36:01 +0000 filemerge: use revset notation for p1/p2 of local/other descriptions
timeless <timeless@mozdev.org> [Thu, 17 Mar 2016 00:36:01 +0000] rev 28640
filemerge: use revset notation for p1/p2 of local/other descriptions
Sat, 26 Mar 2016 12:55:52 +0900 tests: fix for failure of test-convert-p4-filetypes.t
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 26 Mar 2016 12:55:52 +0900] rev 28639
tests: fix for failure of test-convert-p4-filetypes.t Before this patch, test-convert-p4-filetypes.t fails (at least with 2015.2/1366233 version of p4/p4d), because some files below are omitted in expected output for revision 1. - file_tempobj - file_xtempobj These files are: - add-ed at revision 0, and - edit-ed at revision 1 According to perforce command reference below, file type 'tempobj' and 'xtempobj' imply '+S' modifier, which indicates that "Only the head revision is stored". This means that these files should appear only in the most recent revision (= revision 1). https://www.perforce.com/perforce/doc.current/manuals/cmdref/file.types.html BTW, test-convert-p4-filetypes.t with 2015.2/1366233 version of p4/p4d fails similarly also at recent revisions for hgext/convert/p4.py in 2015. Therefore, this patch should be reviewed by perforce guru, to examine whether this failure depends on version (and/or configuration) of p4/p4d or not.
Sun, 20 Mar 2016 21:08:17 -0400 crecord: re-enable reviewing a patch before comitting it
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 20 Mar 2016 21:08:17 -0400] rev 28638
crecord: re-enable reviewing a patch before comitting it The "r" option for this feature was copied into Mercurial from crecord, but the actual implementation never made it into hg until now. It's a moderately useful feature that allows the user to edit the patch in a text editor before comitting it for good. This requires a test, so we must also enable a corresponding testing 'R' option that skips the confirmation dialogue. In addition, we also need a help text for the editor when reviewing the final patch. As for why this is a useful feature if we can already edit hunks in an editor, I would like to offer the following points: * editing hunks does not show the entire patch all at once ** furthermore, the hunk "tree" in the TUI has no root that could be selected for edition * it is helpful to be able to see the entire final patch for confirmation ** within this view, the unselected hunks are hidden, which is visusally cleaner ** this works as a final review of the complete result, which is a bit more difficult to do conceptually via hunk editing * this feature was already in crecord, so it was an oversight to not bring it to core * it works and is consistent with editing hunks
Sun, 20 Mar 2016 18:24:59 -0400 crecord: break out the help message for editing hunks
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 20 Mar 2016 18:24:59 -0400] rev 28637
crecord: break out the help message for editing hunks This help message can be useful for other situations, such as for the review extension. It's also easier to write it at the top-level indentation with triple-quoted strings instead of inserting comment characters and newlines programmatically.
Sun, 20 Mar 2016 20:59:05 -0400 crecord: refactor hunk edit action to use ui.edit
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 20 Mar 2016 20:59:05 -0400] rev 28636
crecord: refactor hunk edit action to use ui.edit The previous version of this code did a lot of dancing around a temporary edit file that ui.edit already handles.
Sun, 20 Mar 2016 13:55:41 -0400 edit: allow to configure the suffix of the temporary filename
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 20 Mar 2016 13:55:41 -0400] rev 28635
edit: allow to configure the suffix of the temporary filename Sometimes, we can pick a more appropriate default suffix than ".txt", for example, diffs could have a ".diff" suffix.
Sat, 19 Mar 2016 18:37:10 -0700 merge: save merge part labels for later reuse
Simon Farnsworth <simonfar@fb.com> [Sat, 19 Mar 2016 18:37:10 -0700] rev 28634
merge: save merge part labels for later reuse We permit the caller of merge operations to supply labels for the merge parts ("local", "other", and optionally "base"). These labels are used in conflict markers to reduce confusion; however, the labels were not persistent, so 'hg resolve' would lose the labels. Store the labels in the mergestate.
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip