Date: Mon, 24 Mar 2003 09:26:32 -0500 From: Brent Verner <brent@rcfile.org> To: Ernst de Haan <ernst.dehaan@nl.wanadoo.com> Cc: Greg Lewis <glewis@eyesbeyond.com>, freebsd-java@FreeBSD.ORG Subject: Re: [patch] daemonctl.c modified to use JAVA_HOME environment variable Message-ID: <20030324142632.GA36430@rcfile.org> In-Reply-To: <200303241032.54982.ernst.dehaan@nl.wanadoo.com> References: <20030207163217.GA99329@rcfile.org> <20030208055654.A20219@misty.eyesbeyond.com> <20030208002946.GA4681@rcfile.org> <200303241032.54982.ernst.dehaan@nl.wanadoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[2003-03-24 10:32] Ernst de Haan said: | 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. This has turned into a little more than a patch at this point... :-) http://docs.freebsd.org/cgi/getmsg.cgi?fetch=146473+0+archive/2003/freebsd-java/20030323.freebsd-java I've competed the setuid/setgid, setenv, chdir and (non-forking) execv bits. I still have logs, forked execv, and pidfile handling to complete, and hope to find time by mid-week to wrap those up. If anyone wants to help the cause, the code is in cvs... sh$ cvs -d :pserver:anoncvs@rcfile.org:/var/cvs login [empty password, just press <Enter> key] sh$ cvs -d :pserver:anoncvs@rcfile.org:/var/cvs co daemonctl This should probably be a separate port, and just have each dependent package install its xml config into /usr/local/etc/daemonct.d/ and create its symlink to the daemonctl binary. cheers. b | 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 -- "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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030324142632.GA36430>