[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:       Ernst de Haan <ernst.dehaan () nl ! wanadoo ! com>
Date:       2003-03-24 9:32:54
[Download RAW message or body]

Brent,

How's your daemonctl.c patch coming along? I'm really interested in this. 
Now that the initial FreeBSD 4.8-RELEASE tag is done, we can consider 
committing patches like these.

Ernst


On Saturday 08 February 2003 01:29, Brent Verner wrote:
> [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

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