From 466106d63815ab56bccf039f798bfce3fb134d0e Mon Sep 17 00:00:00 2001 From: irina Date: Tue, 20 Dec 2016 09:26:11 +0000 Subject: [PATCH] =?UTF-8?q?#559=20ogAdmServer:=20Se=20libera=20memoria=20d?= =?UTF-8?q?e=20variables=20y=20de=20resultados=20de=20la=20base=20de=20dat?= =?UTF-8?q?os.=20=20Database.cpp=20y=20Database.h:=20=20Se=20crea=20funci?= =?UTF-8?q?=C3=B3n=20liberaResult.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://opengnsys.es/svn/branches/version1.1@5132 a21b9725-9963-47de-94b9-378ad31fedc9 --- sources/ogAdmServer.cpp | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/sources/ogAdmServer.cpp b/sources/ogAdmServer.cpp index 1c4e172..9be1c8c 100644 --- a/sources/ogAdmServer.cpp +++ b/sources/ogAdmServer.cpp @@ -147,11 +147,14 @@ BOOLEAN gestionaTrama(SOCKET *socket_c) if (res == 0) { // Encontrada la función que procesa el mensaje liberaMemoria(nfn); res=tbfuncionesServer[i].fptr(socket_c, ptrTrama); // Invoca la función - liberaMemoria((char*)ptrTrama); + liberaMemoria(ptrTrama->parametros); + liberaMemoria(ptrTrama); return(res); } } - + liberaMemoria(nfn); + liberaMemoria(ptrTrama->parametros); + liberaMemoria(ptrTrama); /* Sólo puede ser un comando personalizado o su notificación if (ptrTrama->tipo == MSG_COMANDO) @@ -215,6 +218,7 @@ BOOLEAN respuestaSondeo(SOCKET *socket_c, TRAMA* ptrTrama) { lSize = strlen(iph); // Calcula longitud de la cadena de direccion/es IPE/S Ipes = (char*) reservaMemoria(lSize + 1); if (Ipes == NULL) { + liberaMemoria(iph); errorLog(modulo, 3, FALSE); return (FALSE); } @@ -348,6 +352,7 @@ BOOLEAN EcoConsola(SOCKET *socket_c, TRAMA* ptrTrama) // Lee archivo de eco de consola iph = copiaParametro("iph",ptrTrama); // Toma dirección ip del cliente sprintf(fileco,"/tmp/_Seconsola_%s",iph); // Nombre del archivo en el Servidor + liberaMemoria(iph); lSize=lonArchivo(fileco); if(lSize>0){ // Si el fichero tiene contenido... initParametros(ptrTrama,lSize+LONGITUD_PARAMETROS); @@ -504,6 +509,7 @@ BOOLEAN procesoInclusionClienteWinLnx(SOCKET *socket_c, TRAMA *ptrTrama,int *ido iph = copiaParametro("iph",ptrTrama); // Toma ip if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexión con la BD + liberaMemoria(iph); errorLog(modulo, 20, FALSE); db.GetErrorErrStr(msglog); errorInfo(modulo, msglog); @@ -516,14 +522,19 @@ BOOLEAN procesoInclusionClienteWinLnx(SOCKET *socket_c, TRAMA *ptrTrama,int *ido " WHERE ordenadores.ip = '%s'", iph); if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos + liberaMemoria(iph); errorLog(modulo, 21, FALSE); db.GetErrorErrStr(msglog); errorInfo(modulo, msglog); + db.Close(); return (21); } if (tbl.ISEOF()) { // Si no existe el cliente + liberaMemoria(iph); errorLog(modulo, 22, FALSE); + db.liberaResult(tbl); + db.Close(); return (22); } @@ -532,15 +543,22 @@ BOOLEAN procesoInclusionClienteWinLnx(SOCKET *socket_c, TRAMA *ptrTrama,int *ido infoDebug(msglog); } if (!tbl.Get("idordenador", *idordenador)) { + liberaMemoria(iph); + db.liberaResult(tbl); tbl.GetErrorErrStr(msglog); errorInfo(modulo, msglog); + db.Close(); return (FALSE); } if (!tbl.Get("nombreordenador", nombreordenador)) { + liberaMemoria(iph); + db.liberaResult(tbl); tbl.GetErrorErrStr(msglog); errorInfo(modulo, msglog); + db.Close(); return (FALSE); } + db.liberaResult(tbl); db.Close(); if (!registraCliente(iph)) { // Incluyendo al cliente en la tabla de sokets @@ -604,6 +622,8 @@ BOOLEAN procesoInclusionCliente(SOCKET *socket_c, TRAMA *ptrTrama) { cfg = copiaParametro("cfg",ptrTrama); // Toma configuracion if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexión con la BD + liberaMemoria(iph); + liberaMemoria(cfg); errorLog(modulo, 20, FALSE); db.GetErrorErrStr(msglog); errorInfo(modulo, msglog);