summaryrefslogtreecommitdiffstats
path: root/sandbox/tests
Commit message (Collapse)AuthorAgeFilesLines
* Prevent sandboxed processes from opening each other jschuh@chromium.org2012-04-163-13/+106
| | | | | | | | | | TBR=brettw BUG=117627 BUG=119150 TEST=sbox_validation_tests Review URL: https://chromiumcodereview.appspot.com/9716027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132477 0039d316-1c4b-4281-b951-d872f2087c98
* Add sandbox support for associating peer processes jschuh@chromium.org2012-04-133-15/+36
| | | | | | | | | TEST=HandlePolicyTest.DuplicatePeerHandle Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=131940 Review URL: https://chromiumcodereview.appspot.com/9960045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132112 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 131940 - Add sandbox support for associating peer processes jbauman@chromium.org2012-04-123-37/+16
| | | | | | | | | | | TEST=HandlePolicyTest.DuplicatePeerHandle Review URL: http://codereview.chromium.org/9960045 TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/10065007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131944 0039d316-1c4b-4281-b951-d872f2087c98
* Add sandbox support for associating peer processes jschuh@chromium.org2012-04-123-16/+37
| | | | | | | | TEST=HandlePolicyTest.DuplicatePeerHandle Review URL: http://codereview.chromium.org/9960045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131940 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 131778 - Add sandbox support for associating peer processes jschuh@chromium.org2012-04-113-38/+15
| | | | | | | | | | TEST=HandlePolicyTest.DuplicatePeerHandle Review URL: https://chromiumcodereview.appspot.com/9960045 TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/10054013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131782 0039d316-1c4b-4281-b951-d872f2087c98
* Add sandbox support for associating peer processes jschuh@chromium.org2012-04-113-15/+38
| | | | | | | TEST=HandlePolicyTest.DuplicatePeerHandle Review URL: https://chromiumcodereview.appspot.com/9960045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131778 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 131671 - Add sandbox support for associating peer processesjschuh@chromium.org2012-04-113-38/+15
| | | | | | | | | | TEST=HandlePolicyTest.DuplicatePeerHandle Review URL: https://chromiumcodereview.appspot.com/9960045 TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/10052001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131684 0039d316-1c4b-4281-b951-d872f2087c98
* Add sandbox support for associating peer processesjschuh@chromium.org2012-04-103-15/+38
| | | | | | | TEST=HandlePolicyTest.DuplicatePeerHandle Review URL: https://chromiumcodereview.appspot.com/9960045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131671 0039d316-1c4b-4281-b951-d872f2087c98
* Add a sandbox API for broker handle duplication jschuh@chromium.org2012-03-312-4/+47
| | | | | | | | BUG=119250 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=129627 Review URL: https://chromiumcodereview.appspot.com/9838083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130029 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 129627 - Add a sandbox API for broker handle duplicationjschuh@chromium.org2012-03-292-47/+4
| | | | | | | | | | BUG=119250 Review URL: https://chromiumcodereview.appspot.com/9838083 TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/9924010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129629 0039d316-1c4b-4281-b951-d872f2087c98
* Add a sandbox API for broker handle duplicationjschuh@chromium.org2012-03-292-4/+47
| | | | | | | BUG=119250 Review URL: https://chromiumcodereview.appspot.com/9838083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129627 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 128016 - Make sandbox explicitly block opening broker and sandboxed ↵jschuh@chromium.org2012-03-231-14/+1
| | | | | | | | | | | | | | | processes BUG=117627 BUG=119150 TEST=sbox_validation_tests Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=127795 Review URL: https://chromiumcodereview.appspot.com/9716027 TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/9834065 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128583 0039d316-1c4b-4281-b951-d872f2087c98
* Make sandbox explicitly block opening broker and sandboxed processesjschuh@chromium.org2012-03-211-1/+14
| | | | | | | | | | BUG=117627 BUG=119150 TEST=sbox_validation_tests Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=127795 Review URL: https://chromiumcodereview.appspot.com/9716027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128016 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 127836 - Revert 127820 - Revert 127795 - Make sandbox explicitly ↵zmo@google.com2012-03-211-14/+1
| | | | | | | | | | | | | | | | | | | | | block opening broker and sandboxed processes BUG=119182 BUG=117627 BUG=119150 TEST=sbox_validation_tests Review URL: https://chromiumcodereview.appspot.com/9716027 TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/9796002 TBR=zmo@google.com Review URL: https://chromiumcodereview.appspot.com/9801003 TBR=zmo@google.com Review URL: https://chromiumcodereview.appspot.com/9796005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127840 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 127820 - Revert 127795 - Make sandbox explicitly block opening broker ↵zmo@google.com2012-03-201-1/+14
| | | | | | | | | | | | | | | | | | and sandboxed processes BUG=119182 BUG=117627 BUG=119150 TEST=sbox_validation_tests Review URL: https://chromiumcodereview.appspot.com/9716027 TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/9796002 TBR=zmo@google.com Review URL: https://chromiumcodereview.appspot.com/9801003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127836 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 127795 - Make sandbox explicitly block opening broker and sandboxed ↵zmo@google.com2012-03-201-14/+1
| | | | | | | | | | | | | | | processes BUG=119182 BUG=117627 BUG=119150 TEST=sbox_validation_tests Review URL: https://chromiumcodereview.appspot.com/9716027 TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/9796002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127820 0039d316-1c4b-4281-b951-d872f2087c98
* Make sandbox explicitly block opening broker and sandboxed processesjschuh@chromium.org2012-03-201-1/+14
| | | | | | | | | BUG=117627 BUG=119150 TEST=sbox_validation_tests Review URL: https://chromiumcodereview.appspot.com/9716027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127795 0039d316-1c4b-4281-b951-d872f2087c98
* ake string_util::WriteInto() DCHECK() that the supplied |length_with_null| > ↵pkasting@chromium.org2011-11-291-1/+2
| | | | | | | | | | | | 1, meaning that the without-'\0' string is non-empty. This replaces the conditional code added recently that makes this case return NULL. It's easier to understand if it's simply an error to call WriteInto() in this case at all. Add DCHECK()s or conditionals as appropriate to callers in order to ensure this assertion holds. BUG=none TEST=none Review URL: http://codereview.chromium.org/8418034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112005 0039d316-1c4b-4281-b951-d872f2087c98
* Simplify chrome_exe_main_*.cc, moving as much of the code out as possible. ↵jam@chromium.org2011-08-313-12/+0
| | | | | | | | This is in preparation for moving the code in ChromeMain (and associated platform files) to a common place that can be used by both chrome and other embedders of content (i.e. content_shell). Included is a change to make the sandbox code not need an AtExitManager. This is necessary because content_shell would be just one exe, and we'd need to initialize the sandbox before calling ChromeMain, which is what would creat AtExitManager.I removed the code that printed the tcmalloc stacks in the OOM handler (i.e. r33993) under Windows. The issue is I wanted to move the OOM handling code to base to match the other platforms (in a long string of changes to make the startup code more sane, so I can share it with a browser built over content). When I tried moving the tcmalloc code to base, then I ran into a bunch of linker errors because a bunch of targets that depend on base don't depend on allocator. When I tried to add that to base, I ran into strange gyp errors (see patchset 2). I asked Jim/Eric and they said they don't use this data from dumps, and that most of the OOM minimdumps are in v8 heap anyways. When James get back, if he still uses this I can figure out how to put this back.BUG=90445 Review URL: http://codereview.chromium.org/7810005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99032 0039d316-1c4b-4281-b951-d872f2087c98
* Make the windows_version.h functions threadsafe by using a singleton. Add ↵pkasting@chromium.org2011-04-074-7/+21
| | | | | | | | | | | | accessors to the singleton for more values that various code wants, then convert almost everyone using OSVERSIONINFO or SYSTEM_INFO structs to calling these accessors. Declare an AtExitManager in the out-of-process test runner since it didn't have one and that breaks singleton-using code in the test executable (as opposed to in chrome.dll). A few other minor cleanups along the way (binding of "*", shorter code, etc.). Because I ran into problems with it while modifying gcapi.cc, I cleaned up our usage of strsafe.h a bit, so that files that don't need it don't include it and files that do use STRSAFE_NO_DEPRECATE instead of a modified #include order. BUG=none TEST=none Review URL: http://codereview.chromium.org/6816027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80851 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 80819 due to failed testsmmenke@chromium.org2011-04-071-6/+4
| | | | | | | TBR=pkasting@chromium.org Review URL: http://codereview.chromium.org/6816024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80824 0039d316-1c4b-4281-b951-d872f2087c98
* Make the windows_version.h functions threadsafe by using a singleton. Add ↵pkasting@chromium.org2011-04-071-4/+6
| | | | | | | | | | | | accessors to the singleton for more values that various code wants, then convert almost everyone using OSVERSIONINFO or SYSTEM_INFO structs to calling these accessors. Declare an AtExitManager in the out-of-process test runner since it didn't have one and that breaks singleton-using code in the test executable (as opposed to in chrome.dll). A few other minor cleanups along the way (binding of "*", shorter code, etc.). Because I ran into problems with it while modifying gcapi.cc, I cleaned up our usage of strsafe.h a bit, so that files that don't need it don't include it and files that do use STRSAFE_NO_DEPRECATE instead of a modified #include order. BUG=none TEST=none Review URL: http://codereview.chromium.org/6713107 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80819 0039d316-1c4b-4281-b951-d872f2087c98
* Create a "GetWOW64Status()" utility function and make the rest of the ↵pkasting@chromium.org2011-03-041-8/+5
| | | | | | | | | | codebase call it. BUG=none TEST=none Review URL: http://codereview.chromium.org/6610029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76854 0039d316-1c4b-4281-b951-d872f2087c98
* Move windows version-related stuff out of base/win_util and into ↵brettw@chromium.org2010-10-151-0/+2
| | | | | | | | | | | | | | base/win/windows_version. Many files now only need to include this instead of all of win_util. Remove a bunch of unused code from base/win_util. There was a surprising amount. Replace the AppUserModel property key with the one from the SDK now that we use the Win7 SDK. Move GetLogonSessionOnlyDACL from win_util to ipc since it's only used in that one place. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3823002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62694 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land second sandbox round of changescpu@chromium.org2010-03-132-8/+6
| | | | | | | | | | | | | | | | | | | | | - broke integration tests See http://codereview.chromium.org/757001 BUG=27218 TEST=included No change in the original files. The only changes are in the files: sandbox/src/registry_dispatcher.cc sandbox/src/registry_dispatcher.h sandbox/src/filesystem_dispatcher.cc Because now even in 32 bits the handles map to void pointers Review URL: http://codereview.chromium.org/873006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41523 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 41481 - Secound round of sbox changes for 64 bit portericu@google.com2010-03-122-6/+8
| | | | | | | | | | | | | | | | | | Handling pointer sized items Beefing up unit tests Beefing up integration tests Enabling Process, Thread and Token IPCs Making validation tests compile again BUG=27218 TEST= unit tests included Review URL: http://codereview.chromium.org/757001 TBR=cpu@chromium.org Review URL: http://codereview.chromium.org/871008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41491 0039d316-1c4b-4281-b951-d872f2087c98
* Secound round of sbox changes for 64 bit portcpu@chromium.org2010-03-122-8/+6
| | | | | | | | | | | | | | | - Handling pointer sized items - Beefing up unit tests - Beefing up integration tests - Enabling Process, Thread and Token IPCs - Making validation tests compile again BUG=27218 TEST= unit tests included Review URL: http://codereview.chromium.org/757001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41481 0039d316-1c4b-4281-b951-d872f2087c98
* Improve handling and testing of reparse points.rvargas@google.com2010-01-274-12/+140
| | | | | | | | | BUG=28804 TEST=unit tests. Review URL: http://codereview.chromium.org/553080 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37286 0039d316-1c4b-4281-b951-d872f2087c98
* Delete all precompiled support. It is causing more harm than good, ↵maruel@chromium.org2009-09-046-52/+0
| | | | | | | | | | | | especially when define changes. TEST=none BUG=20889 Review URL: http://codereview.chromium.org/171118 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25511 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for alternate window station.nsylvain@chromium.org2009-05-201-2/+2
| | | | | | | | | | TEST: Start chrome, make sure it loads pages, then user process explorer to make sure the WindowStation handle name is not the same as the browser process. BUG:10996 Review URL: http://codereview.chromium.org/113190 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16483 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the checked-in scons configuration files.sgk@google.com2009-04-014-166/+0
| | | | | | Review URL: http://codereview.chromium.org/53121 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12982 0039d316-1c4b-4281-b951-d872f2087c98
* Fix incorrect include guards in sandbox/. Guards now match their filename.deanm@chromium.org2009-03-171-3/+3
| | | | | | | Review URL: http://codereview.chromium.org/48073 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11868 0039d316-1c4b-4281-b951-d872f2087c98
* NO CODE CHANGEdeanm@chromium.org2009-03-1115-16/+0
| | | | | | | | | Normalize end of file newlines in sandbox/. All files end in a single newline. Review URL: http://codereview.chromium.org/43080 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11447 0039d316-1c4b-4281-b951-d872f2087c98
* Move a function from controller.cc to sandbox_utils.cc innsylvain@chromium.org2008-12-231-2/+1
| | | | | | | preparation for the refactoring. Review URL: http://codereview.chromium.org/16225 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7445 0039d316-1c4b-4281-b951-d872f2087c98
* Convert from using env['PLATFORM'] directly to using the more flexiblesgk@google.com2008-12-184-4/+4
| | | | | | | | | | | | | | | | | | and better-thought-out Hammer env.Bits() idioms: * env['PLATFORM'] == 'win32' => env.Bit('windows') * env['PLATFORM'] == 'posix' => env.Bit('linux') * env['PLATFORM'] == 'darwin' => env.Bit('mac') New idioms: * env.Bit('posix') => really does mean "any POSIX platform" * env.AnyBits('mac', 'linux') => specifically mac or linux, excluding other POSIX platforms Where we were using compound conditionals (e.g., "env['PLATFORM'] in ('posix', 'darwin')") I tried to take my best shot at translating the intent (i.e., "env.Bits('posix')" for something POSIX, "not env.Bits('mac')" for something not yet ported to Mac, etc.) Review URL: http://codereview.chromium.org/15051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7270 0039d316-1c4b-4281-b951-d872f2087c98
* Switch back svn:eol-style=native for .sln, .vcproj and .vsprops files.maruel@chromium.org2008-12-163-716/+716
| | | | | | | Patch fails otherwise on non-Windows platforms. Review URL: http://codereview.chromium.org/14478 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7093 0039d316-1c4b-4281-b951-d872f2087c98
* Changed svn:eol-style of all .sln and .vcproj files to CRLFscherkus@chromium.org2008-12-043-716/+716
| | | | | | Review URL: http://codereview.chromium.org/13133 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6372 0039d316-1c4b-4281-b951-d872f2087c98
* Finish release (opt) builds on Windows, including the parallelsgk@google.com2008-11-204-100/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | build\*.scons structure (mirroring build\*.vsprops files): * Use env.ApplySConscript() instead of env.SConscript with a hand-crafted dictionary defining 'env'. * Move various CPPPATH, CCFLAGS, CPPDEFINES, LIBS and LIBPATH definitions from build/SConscript.main and target-specific *.scons files into the build\*.scons files that mirror the existing build\*.vsprops hierarchy. * Use the new build\{debug,release}.scons files to update the windows_dbg and windows_opt construction environments. * Mirror current support for CHROME_BUILD_TYPE and CHROMIUM_BUILD external environment variables. * Remove hard-coded /TP options. * Massage $CXXFLAGS to remove $CCFLAGS, avoiding duplication of options on command lines. Handle the ripple effect in $PCHCOM by adding $CCFLAGS back to that command line. * Delete hammer's default settings of {CC,LINK}FLAGS_{DEBUG,OPTIMIZED} so they don't pollute our construction environments. * Update chrome config to link against v8 for opt, v8_g for dbg. * Get rid of fragile by-hand order of using_net.scons before other using_*.scons files. We're now using --start-group and --end-group on Linux to deal with dependency cycles in libraries. Review URL: http://codereview.chromium.org/11478 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5741 0039d316-1c4b-4281-b951-d872f2087c98
* Move dmg_fp in scons build to compile fromtc@google.com2008-11-153-3/+0
| | | | | | | | base/third_party/dmg_fp and compile it into base_lib. Review URL: http://codereview.chromium.org/10769 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5521 0039d316-1c4b-4281-b951-d872f2087c98
* Return the right error code when we proxy a callnsylvain@chromium.org2008-11-131-1/+2
| | | | | | | | | | | | | | | | | | | | | to the broker. IIRC we decided to always return access denied because we did not want to leak the real error code, but this is bogus for 2 reasons: 1. The broker will return access denied if it's not allowed in the policy 2. The check to hide the return code is in the renderer, so it would have been possible for a malicious user to see it anyway. I also added a test for it. BUG:3965 Review URL: http://codereview.chromium.org/10615 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5388 0039d316-1c4b-4281-b951-d872f2087c98
* * fix sandbox build on windowstc@google.com2008-11-133-0/+3
| | | | | | | | tbr=evan Review URL: http://codereview.chromium.org/10863 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5330 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid having the Hammer modules strip _WINDOWS for test programs,sgk@google.com2008-11-053-9/+6
| | | | | | | | since doing so conflicts with the way we build the .pch file (and our explicit settings for the rest of object files). Review URL: http://codereview.chromium.org/9380 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4716 0039d316-1c4b-4281-b951-d872f2087c98
* Fix SCons build of the sandbox module, splitting out the individualsgk@google.com2008-10-274-0/+263
| | | | | | | targets into the new *.scons file naming scheme. Review URL: http://codereview.chromium.org/8616 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4000 0039d316-1c4b-4281-b951-d872f2087c98
* Redo change 2413 that I had to back out beforecpu@google.com2008-09-201-0/+4
| | | | | | | | | | | - CL is identical and was already lgtm TBR=rvargas Review URL: http://codereview.chromium.org/3179 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2435 0039d316-1c4b-4281-b951-d872f2087c98
* Do not time out in TestRunner while is being debuggedcpu@google.com2008-09-191-11/+7
| | | | | | | | | - Makes it impossible to debug without changing the code. Review URL: http://codereview.chromium.org/2997 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2424 0039d316-1c4b-4281-b951-d872f2087c98
* back out my sbox changecpu@google.com2008-09-181-4/+0
| | | | | | | | | TBR=nsylvain Review URL: http://codereview.chromium.org/3132 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2353 0039d316-1c4b-4281-b951-d872f2087c98
* Add an interface to the sandbox to block dll from loading in the target processcpu@google.com2008-09-181-0/+4
| | | | | | | | | - new interface is TargetPolicy::AddDllToUnload - Added integration tests and unit tests. Review URL: http://codereview.chromium.org/2413 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2348 0039d316-1c4b-4281-b951-d872f2087c98
* Use a more compact license header in source files.license.bot2008-08-2415-420/+60
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1287 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the old NativeMB functions from string util, and use the new ones in ↵brettw@google.com2008-08-071-36/+2
| | | | | | sys_strings.h. I also removed duplicated code from the sandbox that can now use this, and fixed one case in the bug reporter that should not have been using the native multibyte encoding. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@515 0039d316-1c4b-4281-b951-d872f2087c98
* Adding validation tests for OpenInputDesktop and SwitchDesktop API calls. ↵cpu@google.com2008-07-303-17/+61
| | | | | | | | They should fail under sbox - There was no test for the winstation handle. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117 0039d316-1c4b-4281-b951-d872f2087c98