From commits-return-48396-archive-asf-public=cust-asf.ponee.io@subversion.apache.org Mon Feb 12 17:12:23 2018 Return-Path: X-Original-To: archive-asf-public@eu.ponee.io Delivered-To: archive-asf-public@eu.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by mx-eu-01.ponee.io (Postfix) with ESMTP id 4FFB9180652 for ; Mon, 12 Feb 2018 17:12:23 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 403AC160C3F; Mon, 12 Feb 2018 16:12:23 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 86F82160C31 for ; Mon, 12 Feb 2018 17:12:22 +0100 (CET) Received: (qmail 73861 invoked by uid 500); 12 Feb 2018 16:12:21 -0000 Mailing-List: contact commits-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@subversion.apache.org Delivered-To: mailing list commits@subversion.apache.org Received: (qmail 73851 invoked by uid 99); 12 Feb 2018 16:12:21 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 12 Feb 2018 16:12:21 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 14F2A3A0198 for ; Mon, 12 Feb 2018 16:12:21 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1824001 - in /subversion/branches/1.10.x: ./ STATUS subversion/svn/shelve-cmd.c Date: Mon, 12 Feb 2018 16:12:21 -0000 To: commits@subversion.apache.org From: danielsh@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20180212161221.14F2A3A0198@svn01-us-west.apache.org> Author: danielsh Date: Mon Feb 12 16:12:20 2018 New Revision: 1824001 URL: http://svn.apache.org/viewvc?rev=1824001&view=rev Log: Merge r1823966 from trunk, with --accept=working: * r1823966 Shelving: fix unsafe 'system' calls. Justification: Avoids potential command-line-quoting-safety issues. Notes: --accept=working Votes: +1: julianfoad, danielsh, stsp Modified: subversion/branches/1.10.x/ (props changed) subversion/branches/1.10.x/STATUS subversion/branches/1.10.x/subversion/svn/shelve-cmd.c Propchange: subversion/branches/1.10.x/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Feb 12 16:12:20 2018 @@ -100,4 +100,4 @@ /subversion/branches/verify-at-commit:1462039-1462408 /subversion/branches/verify-keep-going:1439280-1546110 /subversion/branches/wc-collate-path:1402685-1480384 -/subversion/trunk:1817837,1817856,1818577-1818578,1818584,1818651,1818662,1818727,1818801,1818803,1818807,1818868,1818871,1819036-1819037,1819043,1819049,1819052,1819093,1819146,1819162,1819444,1819556-1819557,1819603,1819804,1819911,1820044,1820046-1820047,1820518,1820627,1820718,1820778,1821183,1821224,1821621,1821678,1822401,1822996,1823202-1823203,1823327,1823989 +/subversion/trunk:1817837,1817856,1818577-1818578,1818584,1818651,1818662,1818727,1818801,1818803,1818807,1818868,1818871,1819036-1819037,1819043,1819049,1819052,1819093,1819146,1819162,1819444,1819556-1819557,1819603,1819804,1819911,1820044,1820046-1820047,1820518,1820627,1820718,1820778,1821183,1821224,1821621,1821678,1822401,1822996,1823202-1823203,1823327,1823966,1823989 Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1824001&r1=1824000&r2=1824001&view=diff ============================================================================== --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Mon Feb 12 16:12:20 2018 @@ -20,12 +20,3 @@ Veto-blocked changes: Approved changes: ================= - - * r1823966 - Shelving: fix unsafe 'system' calls. - Justification: - Avoids potential command-line-quoting-safety issues. - Notes: - --accept=working - Votes: - +1: julianfoad, danielsh, stsp Modified: subversion/branches/1.10.x/subversion/svn/shelve-cmd.c URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/subversion/svn/shelve-cmd.c?rev=1824001&r1=1824000&r2=1824001&view=diff ============================================================================== --- subversion/branches/1.10.x/subversion/svn/shelve-cmd.c (original) +++ subversion/branches/1.10.x/subversion/svn/shelve-cmd.c Mon Feb 12 16:12:20 2018 @@ -84,6 +84,36 @@ list_sorted_by_date(apr_array_header_t * return SVN_NO_ERROR; } +#ifndef WIN32 +/* Run CMD with ARGS. + * Send its stdout to the parent's stdout. Disconnect its stdin and stderr. + */ +static svn_error_t * +run_cmd(const char *cmd, + const char *const *args, + apr_pool_t *scratch_pool) +{ + apr_status_t apr_err; + apr_file_t *outfile; + svn_error_t *err; + int exitcode; + + apr_err = apr_file_open_stdout(&outfile, scratch_pool); + if (apr_err) + return svn_error_wrap_apr(apr_err, "Can't open stdout"); + + err = svn_io_run_cmd(NULL /*path*/, cmd, args, + &exitcode, NULL /*exitwhy*/, + TRUE /*inherit*/, + NULL /*infile*/, outfile, NULL /*errfile*/, + scratch_pool); + if (err || exitcode) + return svn_error_createf(SVN_ERR_EXTERNAL_PROGRAM, err, + _("Could not run external command '%s'"), cmd); + return SVN_NO_ERROR; +} +#endif + /* Display a list of shelved changes */ static svn_error_t * shelves_list(const char *local_abspath, @@ -120,10 +150,17 @@ shelves_list(const char *local_abspath, if (diffstat) { #ifndef WIN32 - int result = system(apr_psprintf(scratch_pool, - "diffstat -p0 %s 2> /dev/null", - info->patch_path)); - if (result == 0) + const char *args[4]; + svn_error_t *err; + + args[0] = "diffstat"; + args[1] = "-p0"; + args[2] = info->patch_path; + args[3] = NULL; + err = run_cmd("diffstat", args, scratch_pool); + if (err) + svn_error_clear(err); + else SVN_ERR(svn_cmdline_printf(scratch_pool, "\n")); #endif