Question about os::getenv()

David Holmes david.holmes at oracle.com
Thu Mar 5 01:12:13 UTC 2015


On 5/03/2015 10:07 AM, Jeremy Manson wrote:
> I'm happy to s/os::getenv/getenv/g if we know it works on Windows.  I
> assumed that there was some safety / security reason for requiring the
> copying - otherwise, why does this interface exist at all?

I don't know. Someone else (perhaps on hotspot list rather than 
serviceability) may, but I'd have to do a bit of archaeology to find out.

> If everyone's happy about this, I'll go ahead and file a bug / send in a
> patch, with the understanding that someone else has to test on non-Linux
> platforms...

Sure. Do the patch and I'll run it through JPRT. If you need testing 
other than Solaris and Windows then others will need to step up. :)

Cheers,
David

> Jeremy
>
> On Wed, Mar 4, 2015 at 3:45 PM, David Holmes <david.holmes at oracle.com
> <mailto:david.holmes at oracle.com>> wrote:
>
>     Hi Jeremy,
>
>
>     On 5/03/2015 6:14 AM, Jeremy Manson wrote:
>
>         Hey folks,
>
>         We had a request internally to make it so that JAVA_TOOL_OPTIONS
>         could
>         accept something longer than 1024 characters.  See:
>
>         Arguments::parse_options___environment_variable(const char* name,
>         SysClassPath* scp_p, bool* scp_assembly_required_p)
>
>         in
>
>         http://hg.openjdk.java.net/__jdk9/jdk9/hotspot/file/__27f0413cbea3/src/share/vm/__runtime/arguments.cpp
>         <http://hg.openjdk.java.net/jdk9/jdk9/hotspot/file/27f0413cbea3/src/share/vm/runtime/arguments.cpp>
>
>         Would you folks be amenable to a refactoring so that getenv
>         returns a
>         newly allocated array with the contents of the envvar, which the
>         caller
>         has to delete?
>
>
>     I think this gets used too early in the VM startup to use the VM's
>     allocation routines (ie with NMT support) - not 100% sure though.
>
>     But I think I have to agree with Martin and wonder why we have this
>     copying interface around getenv, rather than using the result of
>     getenv directly? Any code that really wants to modify the returned
>     value can copy it for themselves. That would alleviate the hard
>     wired limits.
>
>     getenv is available on Windows too.
>
>     David
>
>         Jeremy
>
>


More information about the serviceability-dev mailing list