------------------------------------------------------------------------------ To reply, visit https://hellosplat.com/s/beanbag/tickets/4584/ ------------------------------------------------------------------------------
New ticket #4584 by gd-sfc For Beanbag, Inc. > RBTools Status: New Tags: Priority:Medium, Type:Defect ------------------------------------------------------------------------------ Mercurial: Exception in _get_outgoing_changesets() when repo has untrusted hgrc ============================================================================== # What version are you running? RBTools 0.7.8 # What steps will reproduce the problem? 1. Configure a Mercurial repository with a `.hg/hgrc` file owned by an untrusted user (by default, anybody other than the user himself). 2. Create an outgoing commit. 3. Run `rbt post .` # What is the expected output? What do you see instead? The commands should create a new review request. Instead, it fails with `CRITICAL: need more than 1 value to unpack`. # What operating system are you using? Fedora 26 x86_64. # Attach the debug out from the command. ``` >>> RBTools 0.7.8 >>> Python 2.7.13 (default, Sep 5 2017, 08:53:59) [GCC 7.1.1 20170622 (Red Hat 7.1.1-3)] >>> Running on Linux-4.12.9-300.fc26.x86_64-x86_64-with-fedora-26-Twenty_Six >>> Home = /home/gd >>> Current directory = /home/gd/source/redacted >>> Command line: rbt post -d . >>> Checking for a Subversion repository... >>> Running: svn --non-interactive info >>> Command exited with rc 1: ['svn', '--non-interactive', u'info'] svn: E155007: '/home/gd/source/redacted' is not a working copy --- >>> Checking for a Git repository... >>> Running: git rev-parse --git-dir >>> Command exited with rc 128: ['git', 'rev-parse', '--git-dir'] fatal: Not a git repository (or any parent up to mount point /home) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). --- >>> Checking for a Mercurial repository... >>> Running: hg root >>> Running: hg showconfig >>> Running: hg svn info >>> Command exited with rc 255: [u'hg', u'svn', u'info'] hg: unknown command 'svn' Mercurial Distributed SCM basic commands: add add the specified files on the next commit annotate show changeset information by line for each file clone make a copy of an existing repository commit commit the specified files or all outstanding changes diff diff repository (or selected files) export dump the header and diffs for one or more changesets forget forget the specified files on the next commit init create a new repository in the given directory log show revision history of entire repository or files merge merge another revision into working directory pull pull changes from the specified source push push changes to the specified destination remove remove the specified files on the next commit serve start stand-alone webserver status show changed files in the working directory summary summarize working directory state update update working directory (or switch revisions) (use 'hg help' for the full list of commands or 'hg -v' for details) --- >>> Using candidate path u'default': u'/project/hg/incoming/redacted' >>> repository info: Path: /project/hg/incoming/redacted, Base path: , Supports >>> changesets: False >>> Making HTTP GET request to https://reviewboard.uk.redacted/api/ >>> Running: hg parents --hidden -r 0 >>> Running: hg identify -i --hidden -r . --config >>> extensions.rbtoolsnormalize=/usr/lib/python2.7/site-packages/rbtools/helpers/hgext.py >>> Running: hg parents --hidden -r 187b11ef5c7a --template {node|short} >>> --config >>> extensions.rbtoolsnormalize=/usr/lib/python2.7/site-packages/rbtools/helpers/hgext.py >>> Running: hg -q outgoing --template {rev}\t{node|short}\t{branch}\n default >>> -r 5dfc8cbfbc9d >>> Command exited with rc 1: [u'hg', u'-q', u'outgoing', u'--template', >>> u'{rev}\t{node|short}\t{branch}\n', u'default', u'-r', u'5dfc8cbfbc9d'] not trusting file /project/hg/incoming/redacted/.hg/hgrc from untrusted user dr, group ci --- Traceback (most recent call last): File "/usr/bin/rbt", line 11, in <module> load_entry_point('RBTools==0.7.8', 'console_scripts', 'rbt')() File "/usr/lib/python2.7/site-packages/rbtools/commands/main.py", line 133, in main command.run_from_argv([RB_MAIN, command_name] + args) File "/usr/lib/python2.7/site-packages/rbtools/commands/__init__.py", line 664, in run_from_argv exit_code = self.main(*args) or 0 File "/usr/lib/python2.7/site-packages/rbtools/commands/post.py", line 735, in main self.revisions = get_revisions(self.tool, self.cmd_args) File "/usr/lib/python2.7/site-packages/rbtools/utils/review_request.py", line 66, in get_revisions revisions = tool.parse_revision_spec(cmd_args) File "/usr/lib/python2.7/site-packages/rbtools/clients/mercurial.py", line 279, in parse_revision_spec rev=result['base']) File "/usr/lib/python2.7/site-packages/rbtools/clients/mercurial.py", line 605, in _get_outgoing_changesets rev, node, branch = [f.strip() for f in line.split('\t')] ValueError: need more than 1 value to unpack ``` # Please provide any additional information below. The untrusted `hgrc` file results in a message on `stderr` when running `hg outgoing` in `_get_outgoing_changesets()`, which the function then attempts to parse. Thank you! ------------------------------------------------------------------------------ -- You received this message because you are subscribed to the Google Groups "reviewboard-issues" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/reviewboard-issues. For more options, visit https://groups.google.com/d/optout.
