From bcf033b38ee2f6c76cd56cae5cd84a6e321ffafa Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Mon, 3 Dec 2007 14:54:06 -0800 Subject: Change tdb_unpack "P" to return a malloc'ed string rather than expect a pstring space to put data into. Fix the (few) callers. Jeremy. (This used to be commit 7722a7d2c63f84b8105aa775b39f0ceedd4ed513) --- source3/printing/printing.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'source3/printing/printing.c') diff --git a/source3/printing/printing.c b/source3/printing/printing.c index d331e897f9..1613828b79 100644 --- a/source3/printing/printing.c +++ b/source3/printing/printing.c @@ -1352,17 +1352,19 @@ static void print_queue_receive(struct messaging_context *msg, DATA_BLOB *data) { fstring sharename; - pstring lpqcommand, lprmcommand; + char *lpqcommand = NULL, *lprmcommand = NULL; int printing_type; size_t len; len = tdb_unpack( (uint8 *)data->data, data->length, "fdPP", sharename, &printing_type, - lpqcommand, - lprmcommand ); + &lpqcommand, + &lprmcommand ); if ( len == -1 ) { + SAFE_FREE(lpqcommand); + SAFE_FREE(lprmcommand); DEBUG(0,("print_queue_receive: Got invalid print queue update message\n")); return; } @@ -1371,6 +1373,8 @@ static void print_queue_receive(struct messaging_context *msg, get_printer_fns_from_type((enum printing_types)printing_type), lpqcommand, lprmcommand ); + SAFE_FREE(lpqcommand); + SAFE_FREE(lprmcommand); return; } -- cgit