This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to branch debian/master
in repository ioquake3.

commit eecc8326a0b9af15976b0910d2e9bcdc925ceec6
Author: Zack Middleton <[email protected]>
Date:   Wed May 24 12:30:25 2017 -0500

    Save connect and playdemo argument before calling CL_Disconnect()
    
    Save argument instead of using a pointer to cmd token memory that
    might be overwritten when Cmd_TokenizeString() is called.
    
    No known method for causing the issue without engine changes.
    Cmd_TokenizeString() is called by FS_PureServerSetReferencedPaks()
    in CL_Disconnect() but it's not an issue because the string is
    blank.
    
    Thanks @mickael9.
---
 code/client/cl_main.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/code/client/cl_main.c b/code/client/cl_main.c
index 31dd9ab..e9a406e 100644
--- a/code/client/cl_main.c
+++ b/code/client/cl_main.c
@@ -1069,7 +1069,8 @@ demo <demoname>
 */
 void CL_PlayDemo_f( void ) {
        char            name[MAX_OSPATH];
-       char            *arg, *ext_test;
+       char            arg[MAX_OSPATH];
+       char            *ext_test;
        int                     protocol, i;
        char            retry[MAX_OSPATH];
 
@@ -1083,7 +1084,7 @@ void CL_PlayDemo_f( void ) {
        Cvar_Set( "sv_killserver", "2" );
 
        // open the demo file
-       arg = Cmd_Argv(1);
+       Q_strncpyz( arg, Cmd_Argv(1), sizeof( arg ) );
        
        CL_Disconnect( qtrue );
 
@@ -1690,7 +1691,7 @@ CL_Connect_f
 ================
 */
 void CL_Connect_f( void ) {
-       char    *server;
+       char    server[MAX_OSPATH];
        const char      *serverString;
        int argc = Cmd_Argc();
        netadrtype_t family = NA_UNSPEC;
@@ -1701,7 +1702,7 @@ void CL_Connect_f( void ) {
        }
        
        if(argc == 2)
-               server = Cmd_Argv(1);
+               Q_strncpyz( server, Cmd_Argv(1), sizeof( server ) );
        else
        {
                if(!strcmp(Cmd_Argv(1), "-4"))
@@ -1711,7 +1712,7 @@ void CL_Connect_f( void ) {
                else
                        Com_Printf( "warning: only -4 or -6 as address type 
understood.\n");
                
-               server = Cmd_Argv(2);
+               Q_strncpyz( server, Cmd_Argv(2), sizeof( server ) );
        }
 
        // save arguments for reconnect

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-games/ioquake3.git

_______________________________________________
Pkg-games-commits mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

Reply via email to