*/
#include "includes.h"
-#include "dlinklist.h"
+#include "lib/util/dlinklist.h"
#include "libcli/raw/libcliraw.h"
#define TORTURE_TRANS_DATA 0
size_t namelen = 0;
uint16_t data_disp, data_length, max_data;
+ if (parms->in.params.length > UINT16_MAX ||
+ parms->in.data.length > UINT16_MAX) {
+ DEBUG(3,("Attempt to send invalid trans2 request (params %u, data %u)\n",
+ (unsigned)parms->in.params.length, (unsigned)parms->in.data.length));
+ return NULL;
+ }
+
+
if (command == SMBtrans)
padding = 1;
else
SSVAL(req2->out.vwv,VWV(7), data_disp);
SSVAL(req2->out.vwv,VWV(8), 0xFFFF);
- memcpy(req2->out.data, parms->in.data.data + data_disp, data_length);
+ if (data_length != 0) {
+ memcpy(req2->out.data, parms->in.data.data + data_disp,
+ data_length);
+ }
data_disp += data_length;