You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Fred Preston (JIRA)" <ax...@ws.apache.org> on 2005/03/18 11:22:21 UTC
[jira] Assigned: (AXISCPP-560) SetSecure must be changed to use
[ http://issues.apache.org/jira/browse/AXISCPP-560?page=history ]
Fred Preston reassigned AXISCPP-560:
------------------------------------
Assign To: Fred Preston
> SetSecure must be changed to use <stdarg.h>
> -------------------------------------------
>
> Key: AXISCPP-560
> URL: http://issues.apache.org/jira/browse/AXISCPP-560
> Project: Axis-C++
> Type: Bug
> Components: Client - Stub
> Versions: current (nightly)
> Reporter: Tim Bartley
> Assignee: Fred Preston
>
> Currently the generated client stub code for SetSecure is:
> void Service::SetSecure( char * pszArguments, ...)
> {
> char ** ppszArgPtr = &pszArguments;
> int iArgIndex = 0;
> while( *ppszArgPtr != NULL)
> {
> sArguments[iArgIndex] = *ppszArgPtr;
> iArgIndex++;
> ppszArgPtr++;
> }
> }
> This makes horrible assumptions about how arguments are passed to functions and which direction the stack grows and is highly non-portable.
> The correct code would be:
> #include <stdarg.h>
> void Service::SetSecure( char * pszArguments, ...)
> {
> int iArgIndex = 0;
> va_list args;
> va_start(args, pszArguments);
>
> while (pszArguments) {
> sArguments[iArgIndex++] = pszArguments;
> pszArguments = va_arg(args, char*);
> }
> va_end(args);
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira