[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-java
Subject:    RE: [patch] daemonctl.c modified to use JAVA_HOME environment variable
From:       <k.j.koster () telecom ! tno ! nl>
Date:       2003-02-08 2:20:23
[Download RAW message or body]

Dear Brent,

I would prefer daemonctl to fail if the JAVA_HOME is pointing off into lala land. I \
really dislike solutions that are helpfully filling in information. If I set \
JAVA_HOME to something odd, I expect my programs to fail. Please consider this.

    Kees Jan

=====================================================
 You can't have everything.  Where would you put it?
                                     [Steven Wright]



> -----Original Message-----
> From: Brent Verner [mailto:brent@rcfile.org]
> Sent: zaterdag 8 februari 2003 1:30
> To: Greg Lewis
> Cc: freebsd-java@FreeBSD.ORG
> Subject: Re: [patch] daemonctl.c modified to use JAVA_HOME environment
> variable
> 
> 
> [2003-02-08 05:56] Greg Lewis said:
> > On Fri, Feb 07, 2003 at 11:32:17AM -0500, Brent Verner wrote:
> > > The attached patch modified the daemonctl.c program to 
> use JAVA_HOME
> > > if set in the environment.
> > > 
> > > @@ -71,7 +75,16 @@
> > > 
> > > 	/* Declare variables, like all other good ANSI C 
> programs do :) */
> > > 	char *argument;
> > > -
> > > +    
> > > +    /* use JAVA_HOME environemt variable if set */
> > > +    char* _java_home = getenv("JAVA_HOME");
> > > +    if( _java_home != NULL && strcmp("",_java_home) != 0 ){
> > > +      /* TODO: verify that java_prog would exist before 
> overriding the default */
> > > +      strncpy(java_home,_java_home,PATH_MAX-1);
> > > +      
> snprintf(java_prog,PATH_MAX-1,"%s/%%JAVA_CMD%%",_java_home);
> > > +      using_java_home_env = 1;
> > > +    }
> > > +    
> > 
> > Just some minor feedback.
> > 
> > I don't think this change is safe.  If _java_home is too long to fit
> > then java_home won't get null terminated.  I suggest trying strlcpy
> > instead.  You might want to think about using strlcat instead of
> > snprintf too, and adding some checking for overflow (and appropriate
> > error handling if it occurs).
> 
> Here's a better version (thanks for the pointer to strlcat).  If
> JAVA_HOME is set (and not empty) in the environment, try to use it
> to find a usable JAVA_HOME/bin/java executable.  Use this executable
> if found, otherwise the default compile-time executable will be used.
> In any case, if JAVA_HOME was checked, an 'info' message is printed,
> alerting the user of the attempted command override.
> 
> cheers.
> b
> 
> -- 
> "Develop your talent, man, and leave the world something. Records are 
> really gifts from people. To think that an artist would love 
> you enough
> to share his music with anyone is a beautiful thing."  -- Duane Allman
> 

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-java" in the body of the message


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic