diff options
author | Gerald Carter <jerry@samba.org> | 2003-11-13 20:16:28 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2003-11-13 20:16:28 +0000 |
commit | ac20c8cfb0e3633f5007fe30fe82704264db5c00 (patch) | |
tree | 927ebe930a3b6cc25c490ea111cb194c1d80dc7a | |
parent | 618d7dd0c77cc125611e97d60d6759fb0a0ccb5c (diff) | |
download | samba-ac20c8cfb0e3633f5007fe30fe82704264db5c00.tar.gz samba-ac20c8cfb0e3633f5007fe30fe82704264db5c00.tar.bz2 samba-ac20c8cfb0e3633f5007fe30fe82704264db5c00.zip |
* Fix from SATOH Fumiyasu for bug 660 (failing to view print
jobs) by only enforce the 'max reported print jobs' parameter
when it is non-zero.
* Fixed bug 338 by making sure that data values are written
out when we are marshalling an EnumPrinterDataEx() reply.
This probably fixes other bugs reported against point-n-print
feature in 3.0.0
(This used to be commit d7026f6d178f6ed531bbf7d681d4efde0828616c)
-rw-r--r-- | source3/printing/printing.c | 4 | ||||
-rw-r--r-- | source3/rpc_parse/parse_spoolss.c | 12 |
2 files changed, 9 insertions, 7 deletions
diff --git a/source3/printing/printing.c b/source3/printing/printing.c index 1a878afb92..ef532473ba 100644 --- a/source3/printing/printing.c +++ b/source3/printing/printing.c @@ -849,7 +849,7 @@ static void store_queue_struct(struct tdb_print_db *pdb, struct traverse_struct size_t i; uint qcount; - if (max_reported_jobs < pts->qcount) + if (max_reported_jobs && (max_reported_jobs < pts->qcount)) pts->qcount = max_reported_jobs; qcount = pts->qcount; @@ -2146,7 +2146,7 @@ static BOOL get_stored_queue_info(struct tdb_print_db *pdb, int snum, int *pcoun len = 0; for( i = 0; i < qcount; i++) { uint32 qjob, qsize, qpage_count, qstatus, qpriority, qtime; - len += tdb_unpack(data.dptr + 4 + len, data.dsize - len, NULL, "ddddddff", + len += tdb_unpack(data.dptr + 4 + len, data.dsize - len, "ddddddff", &qjob, &qsize, &qpage_count, diff --git a/source3/rpc_parse/parse_spoolss.c b/source3/rpc_parse/parse_spoolss.c index 65f16414a0..7581316767 100644 --- a/source3/rpc_parse/parse_spoolss.c +++ b/source3/rpc_parse/parse_spoolss.c @@ -7294,11 +7294,13 @@ static BOOL spoolss_io_printer_enum_values_ctr(const char *desc, prs_struct *ps, if (!prs_unistr("valuename", ps, depth, &ctr->values[i].valuename)) return False; - if (UNMARSHALLING(ps) && ctr->values[i].data_len) { - ctr->values[i].data = (uint8 *)prs_alloc_mem( - ps, ctr->values[i].data_len); - if (!ctr->values[i].data) - return False; + if ( ctr->values[i].data_len ) { + if ( UNMARSHALLING(ps) ) { + ctr->values[i].data = (uint8 *)prs_alloc_mem( + ps, ctr->values[i].data_len); + if (!ctr->values[i].data) + return False; + } if (!prs_uint8s(False, "data", ps, depth, ctr->values[i].data, ctr->values[i].data_len)) return False; } |