Author: jra
Date: 2005-08-11 20:44:21 +0000 (Thu, 11 Aug 2005)
New Revision: 9245

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

Log:
Fix bugs found by Coverity.
Jeremy.

Modified:
   trunk/source/printing/printing.c


Changeset:
Modified: trunk/source/printing/printing.c
===================================================================
--- trunk/source/printing/printing.c    2005-08-11 20:44:18 UTC (rev 9244)
+++ trunk/source/printing/printing.c    2005-08-11 20:44:21 UTC (rev 9245)
@@ -399,8 +399,10 @@
                if (!lp_print_ok(snum))
                        continue;
                pdb = get_print_db_byname(lp_const_servicename(snum));
-               if (pdb)
-                       tdb_traverse(pdb->tdb, unixjob_traverse_fn, 
&unix_jobid);
+               if (!pdb) {
+                       continue;
+               }
+               tdb_traverse(pdb->tdb, unixjob_traverse_fn, &unix_jobid);
                release_print_db(pdb);
                if (sysjob_to_jobid_value != (uint32)-1)
                        return sysjob_to_jobid_value;
@@ -1067,6 +1069,10 @@
        TDB_DATA jcdata;
        fstring keystr, cachestr;
        struct tdb_print_db *pdb = get_print_db_byname(sharename);
+
+       if (!pdb) {
+               return;
+       }
        
        DEBUG(5,("print_queue_update_internal: printer = %s, type = %d, lpq 
command = [%s]\n",
                sharename, current_printif->type, lpq_command));
@@ -1426,6 +1432,11 @@
           sent.  */
 
        pdb = get_print_db_byname(sharename);
+       if (!pdb) {
+               SAFE_FREE(buffer);
+               return;
+       }
+
        snprintf(key, sizeof(key), "MSG_PENDING/%s", sharename);
 
        if ( !tdb_store_uint32( pdb->tdb, key, time(NULL) ) ) {
@@ -1731,6 +1742,10 @@
        BOOL ret = False;
        BOOL gotlock = False;
 
+       if (!pdb) {
+               return False;
+       }
+
        ZERO_STRUCT(data);
 
        key = string_tdb_data("INFO/jobs_changed");
@@ -2057,11 +2072,14 @@
        struct tdb_print_db *pdb = get_print_db_byname(sharename);
        int len;
 
+       if (status) {
+               ZERO_STRUCTP(status);
+       }
+
        if (!pdb)
                return 0;
 
        if (status) {
-               ZERO_STRUCTP(status);
                fstr_sprintf(keystr, "STATUS/%s", sharename);
                data = tdb_fetch(pdb->tdb, string_tdb_data(keystr));
                if (data.dptr) {

Reply via email to