Author: jerry
Date: 2005-04-26 14:14:16 +0000 (Tue, 26 Apr 2005)
New Revision: 6490

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6490

Log:
BUG 1998: patch from Olaf Imig <[EMAIL PROTECTED]>; fix byte ordering bug when 
storing 16-bit RAP print job ids
Modified:
   branches/SAMBA_3_0/source/printing/printing.c


Changeset:
Modified: branches/SAMBA_3_0/source/printing/printing.c
===================================================================
--- branches/SAMBA_3_0/source/printing/printing.c       2005-04-26 12:26:52 UTC 
(rev 6489)
+++ branches/SAMBA_3_0/source/printing/printing.c       2005-04-26 14:14:16 UTC 
(rev 6490)
@@ -67,6 +67,7 @@
        uint16 rap_jobid;
        TDB_DATA data, key;
        struct rap_jobid_key jinfo;
+       uint8 buf[2];
 
        DEBUG(10,("pjobid_to_rap: called.\n"));
 
@@ -96,7 +97,8 @@
        rap_jobid = ++next_rap_jobid;
        if (rap_jobid == 0)
                rap_jobid = ++next_rap_jobid;
-       data.dptr = (char *)&rap_jobid;
+       SSVAL(buf,0,rap_jobid);
+       data.dptr = buf;
        data.dsize = sizeof(rap_jobid);
        tdb_store(rap_tdb, key, data, TDB_REPLACE);
        tdb_store(rap_tdb, data, key, TDB_REPLACE);
@@ -109,13 +111,15 @@
 BOOL rap_to_pjobid(uint16 rap_jobid, fstring sharename, uint32 *pjobid)
 {
        TDB_DATA data, key;
+       uint8 buf[2];
 
        DEBUG(10,("rap_to_pjobid called.\n"));
 
        if (!rap_tdb)
                return False;
 
-       key.dptr = (char *)&rap_jobid;
+       SSVAL(buf,0,rap_jobid);
+       key.dptr = buf;
        key.dsize = sizeof(rap_jobid);
        data = tdb_fetch(rap_tdb, key);
        if ( data.dptr && data.dsize == sizeof(struct rap_jobid_key) ) 
@@ -140,6 +144,7 @@
        TDB_DATA key, data;
        uint16 rap_jobid;
        struct rap_jobid_key jinfo;
+       uint8 buf[2];
 
        DEBUG(10,("rap_jobid_delete: called.\n"));
 
@@ -165,7 +170,8 @@
 
        rap_jobid = SVAL(data.dptr, 0);
        SAFE_FREE(data.dptr);
-       data.dptr = (char *)&rap_jobid;
+       SSVAL(buf,0,rap_jobid);
+       data.dptr=buf;
        data.dsize = sizeof(rap_jobid);
        tdb_delete(rap_tdb, key);
        tdb_delete(rap_tdb, data);

Reply via email to