On 4 November 2011 10:12, <mt...@apache.org> wrote: > Author: mturk > Date: Fri Nov 4 10:12:10 2011 > New Revision: 1197479 > > URL: http://svn.apache.org/viewvc?rev=1197479&view=rev > Log: > DAEMON-219: Prevent crashing procrun by making sure we use java.lang.System > if --StopClass was not defined
Would it be possible to report an error instead during parameter validation? > Modified: > commons/proper/daemon/trunk/src/native/windows/apps/prunsrv/prunsrv.c > commons/proper/daemon/trunk/src/native/windows/include/apxwin.h > commons/proper/daemon/trunk/src/native/windows/src/utils.c > > Modified: > commons/proper/daemon/trunk/src/native/windows/apps/prunsrv/prunsrv.c > URL: > http://svn.apache.org/viewvc/commons/proper/daemon/trunk/src/native/windows/apps/prunsrv/prunsrv.c?rev=1197479&r1=1197478&r2=1197479&view=diff > ============================================================================== > --- commons/proper/daemon/trunk/src/native/windows/apps/prunsrv/prunsrv.c > (original) > +++ commons/proper/daemon/trunk/src/native/windows/apps/prunsrv/prunsrv.c Fri > Nov 4 10:12:10 2011 > @@ -1346,8 +1346,13 @@ void WINAPI serviceMain(DWORD argc, LPTS > if (!lstrcmpiW(SO_STOPMODE, PRSRV_JVM)) { > _jni_shutdown = TRUE; > _jni_sclass = WideToANSI(SO_STOPCLASS); > - apxStrCharReplaceA(_jni_sclass, '.', '/'); > - _jni_sparam = SO_STOPPARAMS; > + if (IS_VALID_STRING(SO_STOPCLASS)) { > + apxStrCharReplaceA(_jni_sclass, '.', '/'); > + _jni_sparam = SO_STOPPARAMS; > + } > + else { > + _jni_sclass = "java/lang/System"; > + } > } > else if (!lstrcmpiW(SO_STOPMODE, PRSRV_JAVA)) { > LPWSTR jx = NULL, szJH = SO_JAVAHOME; > > Modified: commons/proper/daemon/trunk/src/native/windows/include/apxwin.h > URL: > http://svn.apache.org/viewvc/commons/proper/daemon/trunk/src/native/windows/include/apxwin.h?rev=1197479&r1=1197478&r2=1197479&view=diff > ============================================================================== > --- commons/proper/daemon/trunk/src/native/windows/include/apxwin.h (original) > +++ commons/proper/daemon/trunk/src/native/windows/include/apxwin.h Fri Nov > 4 10:12:10 2011 > @@ -63,6 +63,7 @@ typedef _W64 int intptr_t; > > #define IS_INVALID_HANDLE(h) (((h) == NULL || (h) == INVALID_HANDLE_VALUE)) > #define IS_VALID_STRING(s) ((s) != NULL && *(s) != 0) > +#define IS_EMPTY_STRING(s) ((s) == NULL || *(s) == 0) > > #define DYNOLAD_TYPE_DECLARE(fnName, callconv, retType) \ > typedef retType (callconv *PFN_##fnName) \ > > Modified: commons/proper/daemon/trunk/src/native/windows/src/utils.c > URL: > http://svn.apache.org/viewvc/commons/proper/daemon/trunk/src/native/windows/src/utils.c?rev=1197479&r1=1197478&r2=1197479&view=diff > ============================================================================== > --- commons/proper/daemon/trunk/src/native/windows/src/utils.c (original) > +++ commons/proper/daemon/trunk/src/native/windows/src/utils.c Fri Nov 4 > 10:12:10 2011 > @@ -499,6 +499,8 @@ LPTSTR apxStrCharRemove(LPTSTR szString, > { > LPTSTR p = szString; > LPTSTR q = szString; > + if (IS_EMPTY_STRING(szString)) > + return szString; > while (*p) { > if(*p != chSkip) > *q++ = *p; > @@ -514,6 +516,8 @@ DWORD apxStrCharRemoveA(LPSTR szString, > LPSTR p = szString; > LPSTR q = szString; > DWORD c = 0; > + if (IS_EMPTY_STRING(szString)) > + return c; > while (*p) { > if(*p != chSkip) > *q++ = *p; > @@ -531,6 +535,8 @@ DWORD apxStrCharRemoveW(LPWSTR szString, > LPWSTR p = szString; > LPWSTR q = szString; > DWORD c = 0; > + if (IS_EMPTY_STRING(szString)) > + return c; > while (*p) { > if(*p != chSkip) > *q++ = *p; > @@ -548,6 +554,9 @@ apxStrCharReplaceA(LPSTR szString, CHAR > { > LPSTR p = szString; > LPSTR q = szString; > + > + if (IS_EMPTY_STRING(szString)) > + return; > while (*p) { > if(*p == chReplace) > *q++ = chReplaceWith; > @@ -563,6 +572,8 @@ apxStrCharReplaceW(LPWSTR szString, WCHA > { > LPWSTR p = szString; > LPWSTR q = szString; > + if (IS_EMPTY_STRING(szString)) > + return; > while (*p) { > if(*p == chReplace) > *q++ = chReplaceWith; > > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org