summaryrefslogtreecommitdiff
path: root/source3/printing
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2004-03-15 15:06:33 +0000
committerGerald Carter <jerry@samba.org>2004-03-15 15:06:33 +0000
commitdbe9e8a4cbd266990a68f66559bcaff896bc4d51 (patch)
treeb474a7cde660737ac58802b5c5d3a4dc44206fad /source3/printing
parent0f9186a1acc235d69887a3bbc1f5ffd320b6f99d (diff)
downloadsamba-dbe9e8a4cbd266990a68f66559bcaff896bc4d51.tar.gz
samba-dbe9e8a4cbd266990a68f66559bcaff896bc4d51.tar.bz2
samba-dbe9e8a4cbd266990a68f66559bcaff896bc4d51.zip
fix byte ordering problem when storing the updating pid for the lpq cache; was causing an abort in process_exists() on solaris
(This used to be commit 26681cd2a1567d90cc7d344e8aca6e6a686053f5)
Diffstat (limited to 'source3/printing')
-rw-r--r--source3/printing/printing.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/source3/printing/printing.c b/source3/printing/printing.c
index ad11108a5a..ed19c01f24 100644
--- a/source3/printing/printing.c
+++ b/source3/printing/printing.c
@@ -818,6 +818,8 @@ static void set_updating_pid(const fstring printer_name, BOOL delete)
TDB_DATA key;
TDB_DATA data;
pid_t updating_pid = sys_getpid();
+ uint8 buffer[4];
+
struct tdb_print_db *pdb = get_print_db_byname(printer_name);
if (!pdb)
@@ -833,8 +835,9 @@ static void set_updating_pid(const fstring printer_name, BOOL delete)
return;
}
- data.dptr = (void *)&updating_pid;
- data.dsize = sizeof(pid_t);
+ SIVAL( buffer, 0, updating_pid);
+ data.dptr = (void *)buffer;
+ data.dsize = 4; /* we always assume this is a 4 byte value */
tdb_store(pdb->tdb, key, data, TDB_REPLACE);
release_print_db(pdb);