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