Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-3354

Coverity issues 1375904-1375907

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Minor - P4 Minor - P4
    • WT2.9.3, 3.2.14, 3.4.5, 3.5.9
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None

      4 new coverity issues have been reported, ID's 1375904-1375907

      4 new defect(s) introduced to WiredTiger found with Coverity Scan.
      
      
      New defect(s) Reported-by: Coverity Scan
      Showing 4 of 4 defect(s)
      
      
      ** CID 1375907:  Resource leaks  (RESOURCE_LEAK)
      /src/btree/row_modify.c: 23 in __wt_page_modify_alloc()
      
      
      ________________________________________________________________________________________________________
      *** CID 1375907:  Resource leaks  (RESOURCE_LEAK)
      /src/btree/row_modify.c: 23 in __wt_page_modify_alloc()
      17     {
      18      WT_PAGE_MODIFY *modify;
      19
      20      WT_RET(__wt_calloc_one(session, &modify));
      21
      22      /* Initialize the spinlock for the page. */
      >>>     CID 1375907:  Resource leaks  (RESOURCE_LEAK)
      >>>     Variable "modify" going out of scope leaks the storage it points to.
      23      WT_RET(__wt_spin_init(session, &modify->page_lock, "btree page"));
      24
      25      /*
      26       * Multiple threads of control may be searching and deciding to modify
      27       * a page.  If our modify structure is used, update the page's memory
      28       * footprint, else discard the modify structure, another thread did the
      
      ** CID 1375906:  Control flow issues  (MISSING_RESTORE)
      /src/lsm/lsm_work_unit.c: 393 in __wt_lsm_checkpoint_chunk()
      
      
      ________________________________________________________________________________________________________
      *** CID 1375906:  Control flow issues  (MISSING_RESTORE)
      /src/lsm/lsm_work_unit.c: 393 in __wt_lsm_checkpoint_chunk()
      387                     WT_ERR(__wt_lsm_manager_push_entry(
      388                         session, WT_LSM_WORK_BLOOM, 0, lsm_tree));
      389             else
      390                     WT_ERR(__wt_lsm_manager_push_entry(
      391                         session, WT_LSM_WORK_MERGE, 0, lsm_tree));
      392
      >>>     CID 1375906:  Control flow issues  (MISSING_RESTORE)
      >>>     Jumped to here, skipping restore.
      393     err:    if (flush_set)
      394                     WT_PUBLISH(chunk->flushing, 0);
      395             if (release_btree)
      396                     WT_TRET(__wt_session_release_btree(session));
      397
      398             return (ret);
      
      ** CID 1375905:  Resource leaks  (RESOURCE_LEAK)
      /src/lsm/lsm_tree.c: 475 in __lsm_tree_open()
      
      
      ________________________________________________________________________________________________________
      *** CID 1375905:  Resource leaks  (RESOURCE_LEAK)
      /src/lsm/lsm_tree.c: 475 in __lsm_tree_open()
      469             if ((ret = __lsm_tree_find(
      470                 session, uri, exclusive, treep)) != WT_NOTFOUND)
      471                     return (ret);
      472
      473             /* Try to open the tree. */
      474             WT_RET(__wt_calloc_one(session, &lsm_tree));
      >>>     CID 1375905:  Resource leaks  (RESOURCE_LEAK)
      >>>     Variable "lsm_tree" going out of scope leaks the storage it points to.
      475             WT_RET(__wt_rwlock_init(session, &lsm_tree->rwlock));
      476
      477             WT_ERR(__lsm_tree_set_name(session, lsm_tree, uri));
      478
      479             WT_ERR(__wt_lsm_meta_read(session, lsm_tree));
      480
      
      ** CID 1375904:    (LOCK)
      /src/btree/bt_split.c: 1202 in __split_internal_lock()
      /src/btree/bt_split.c: 1202 in __split_internal_lock()
      
      
      ________________________________________________________________________________________________________
      *** CID 1375904:    (LOCK)
      /src/btree/bt_split.c: 1202 in __split_internal_lock()
      1196            if (!__wt_ref_is_root(parent_ref = parent->pg_intl_parent_ref)) {
      1197                    WT_ERR(__wt_page_in(session, parent_ref, WT_READ_NO_EVICT));
      1198                    *hazardp = true;
      1199            }
      1200
      1201            *parentp = parent;
      >>>     CID 1375904:    (LOCK)
      >>>     Returning without unlocking "parent->modify->page_lock.lock".
      1202            return (0);
      1203
      1204     err:   WT_PAGE_UNLOCK(session, parent);
      1205            return (ret);
      1206     }
      1207
      /src/btree/bt_split.c: 1202 in __split_internal_lock()
      1196            if (!__wt_ref_is_root(parent_ref = parent->pg_intl_parent_ref)) {
      1197                    WT_ERR(__wt_page_in(session, parent_ref, WT_READ_NO_EVICT));
      1198                    *hazardp = true;
      1199            }
      1200
      1201            *parentp = parent;
      >>>     CID 1375904:    (LOCK)
      >>>     Returning without unlocking "parent->modify->page_lock.lock".
      1202            return (0);
      1203
      1204     err:   WT_PAGE_UNLOCK(session, parent);
      1205            return (ret);
      1206     }
      1207
      

            Assignee:
            michael.cahill@mongodb.com Michael Cahill (Inactive)
            Reporter:
            david.hows David Hows
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: