From fad6aa49a1d3eeec81fcd7690bf4d9f8d6d05fd9 Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Thu, 2 Jul 2015 23:14:08 +0000 Subject: [PATCH] Pequenos ajustes no módulo hllapi --- pw3270.cbp | 6 ------ src/classlib/remote.cc | 18 ++++++++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pw3270.cbp b/pw3270.cbp index 15fba74..6ae188e 100644 --- a/pw3270.cbp +++ b/pw3270.cbp @@ -396,15 +396,9 @@ - - - - diff --git a/src/classlib/remote.cc b/src/classlib/remote.cc index 598dda2..295323d 100644 --- a/src/classlib/remote.cc +++ b/src/classlib/remote.cc @@ -131,16 +131,22 @@ string query_string(void *query, size_t szQuery, size_t len) { - struct hllapi_packet_text * response; - DWORD cbSize = sizeof(struct hllapi_packet_text)+len; - string s; - char buffer[cbSize+2]; + struct hllapi_packet_text * response; + DWORD sz = sizeof(struct hllapi_packet_text)+len; + DWORD cbSize = (DWORD) sz; + string s; + char buffer[sz+2]; + + memset(buffer,0,sz+2); response = (struct hllapi_packet_text *) buffer; - if(TransactNamedPipe(hPipe,(LPVOID) query, szQuery, response, cbSize, &cbSize,NULL)) + if(TransactNamedPipe(hPipe,(LPVOID) query, szQuery, response, sz, &cbSize,NULL)) { - buffer[cbSize] = 0; + buffer[min(cbSize,sz)] = 0; + + trace("TransactNamedPipe call %d returns \"%s\"",(int) *( (unsigned char *) query), response->text); + if(!response->packet_id) s.assign(response->text); } -- libgit2 0.21.2