There are a total of 401 outstanding defects detected by Coverity in this run. 39 of those are in the Buffer Overflow category. 48 are considered High impact. The defect density (defects per 1000 LOC) of BOINC is 1.37 and the average defect density of similar open source projects analysed by Coverity is 0.5 We should aim to get under 1 defect per 1000 lines.
The easiest thing to get rid of is the uninitialized member defects (UNINIT_CTOR) which are 129 overall. I will look into them. If someone needs access to the Coverity report to see all the defects, please send me an email. We should also include the CID numbers in the commit message for future reference. If something is a clear false-positive please let me know, so I can tweak the scanner to ignore this in the next run. Regards Christian On 10/14/2015 12:49 AM, David Anderson wrote: > FYI. I'm not sure how to fix these, or if they matter. > -- David > > > -------- Forwarded Message -------- > Subject: New Defects reported by Coverity Scan for BOINC/boinc > Date: Tue, 13 Oct 2015 13:45:52 -0700 > From: [email protected] > To: [email protected] > > > > Hi, > > Please find the latest report on new defect(s) introduced to > BOINC/boinc found with Coverity Scan. > > 13 new defect(s) introduced to BOINC/boinc found with Coverity Scan. > 14 defect(s), reported by Coverity Scan earlier, were marked fixed in > the recent build analyzed by Coverity Scan. > > New defect(s) Reported-by: Coverity Scan > Showing 13 of 13 defect(s) > > > ** CID 117641: Uninitialized members (UNINIT_CTOR) > /clientgui/DlgAdvPreferences.cpp: 105 in > CDlgAdvPreferences::CDlgAdvPreferences(wxWindow *)() > > > ________________________________________________________________________________________________________ > > *** CID 117641: Uninitialized members (UNINIT_CTOR) > /clientgui/DlgAdvPreferences.cpp: 105 in > CDlgAdvPreferences::CDlgAdvPreferences(wxWindow *)() > 99 SetSpecialTooltips(); > 100 //setting the validators for correct input handling > 101 SetValidators(); > 102 //read in settings and initialize controls > 103 ReadPreferenceSettings(); > 104 >>>> CID 117641: Uninitialized members (UNINIT_CTOR) >>>> Non-static class member "lastErrorCtrl" is not initialized in >>>> this constructor nor in any functions that it calls. > 105 if (! m_bOKToShow) return; > 106 > 107 // Get default preference values > 108 defaultPrefs.enabled_defaults(); > 109 // > 110 RestoreState(); > > ** CID 117640: Uninitialized members (UNINIT_CTOR) > /clientgui/DlgEventLogListCtrl.cpp: 42 in > MyEvtLogEvtHandler::MyEvtLogEvtHandler()() > > > ________________________________________________________________________________________________________ > > *** CID 117640: Uninitialized members (UNINIT_CTOR) > /clientgui/DlgEventLogListCtrl.cpp: 42 in > MyEvtLogEvtHandler::MyEvtLogEvtHandler()() > 36 IMPLEMENT_DYNAMIC_CLASS(MyEvtLogEvtHandler, wxEvtHandler) > 37 > 38 BEGIN_EVENT_TABLE(MyEvtLogEvtHandler, wxEvtHandler) > 39 EVT_PAINT(MyEvtLogEvtHandler::OnPaint) > 40 END_EVENT_TABLE() > 41 >>>> CID 117640: Uninitialized members (UNINIT_CTOR) >>>> Non-static class member "m_view_startX" is not initialized in >>>> this constructor nor in any functions that it calls. > 42 MyEvtLogEvtHandler::MyEvtLogEvtHandler() {} > 43 > 44 MyEvtLogEvtHandler::MyEvtLogEvtHandler(wxGenericListCtrl > *theListControl) { > 45 m_listCtrl = theListControl; > 46 m_view_startX = 0; > 47 } > > ** CID 117639: Uninitialized members (UNINIT_CTOR) > /clientgui/DlgEventLogListCtrl.cpp: 97 in > CDlgEventLogListCtrl::CDlgEventLogListCtrl(CDlgEventLog *, int, int)() > > > ________________________________________________________________________________________________________ > > *** CID 117639: Uninitialized members (UNINIT_CTOR) > /clientgui/DlgEventLogListCtrl.cpp: 97 in > CDlgEventLogListCtrl::CDlgEventLogListCtrl(CDlgEventLog *, int, int)() > 91 > 92 #ifdef __WXMAC__ > 93 m_fauxHeaderView = NULL; > 94 m_fauxBodyView = NULL; > 95 SetupMacAccessibilitySupport(); > 96 #endif >>>> CID 117639: Uninitialized members (UNINIT_CTOR) >>>> Non-static class member "savedHandler" is not initialized in >>>> this constructor nor in any functions that it calls. > 97 } > 98 > 99 > 100 #ifdef __WXMAC__ > 101 CDlgEventLogListCtrl::~CDlgEventLogListCtrl() > 102 { > > ** CID 117638: Uninitialized members (UNINIT_CTOR) > /clientgui/sg_CustomControls.cpp: 142 in > CTransparentHyperlinkCtrl::CTransparentHyperlinkCtrl()() > > > ________________________________________________________________________________________________________ > > *** CID 117638: Uninitialized members (UNINIT_CTOR) > /clientgui/sg_CustomControls.cpp: 142 in > CTransparentHyperlinkCtrl::CTransparentHyperlinkCtrl()() > 136 BEGIN_EVENT_TABLE(CTransparentHyperlinkCtrl, wxHyperlinkCtrl) > 137 > EVT_ERASE_BACKGROUND(CTransparentHyperlinkCtrl::OnEraseBackground) > 138 EVT_PAINT(CTransparentHyperlinkCtrl::OnPaint) > 139 END_EVENT_TABLE() > 140 #endif > 141 >>>> CID 117638: Uninitialized members (UNINIT_CTOR) >>>> Non-static class member "m_pParentsBgBmp" is not initialized in >>>> this constructor nor in any functions that it calls. > 142 CTransparentHyperlinkCtrl::CTransparentHyperlinkCtrl() {} > 143 > 144 CTransparentHyperlinkCtrl::CTransparentHyperlinkCtrl(wxWindow > *parent, > 145 wxWindowID id, > 146 const wxString& label, const wxString& url, > 147 const wxPoint& pos, > > ** CID 117637: Uninitialized members (UNINIT_CTOR) > /clientgui/sg_CustomControls.cpp: 342 in > CTransparentCheckBox::CTransparentCheckBox()() > > > ________________________________________________________________________________________________________ > > *** CID 117637: Uninitialized members (UNINIT_CTOR) > /clientgui/sg_CustomControls.cpp: 342 in > CTransparentCheckBox::CTransparentCheckBox()() > 336 #ifndef __WXMAC__ > 337 BEGIN_EVENT_TABLE(CTransparentCheckBox, wxCheckBox) > 338 EVT_ERASE_BACKGROUND(CTransparentCheckBox::OnEraseBackground) > 339 END_EVENT_TABLE() > 340 #endif > 341 >>>> CID 117637: Uninitialized members (UNINIT_CTOR) >>>> Non-static class member "m_pParentsBgBmp" is not initialized in >>>> this constructor nor in any functions that it calls. > 342 CTransparentCheckBox::CTransparentCheckBox() {} > 343 > 344 CTransparentCheckBox::CTransparentCheckBox(wxWindow *parent, > wxWindowID id, const wxString& label, > 345 const wxPoint& pos, > 346 const wxSize& size, long style, > 347 const wxValidator& validator, > > ** CID 117636: Insecure data handling (TAINTED_SCALAR) > /sched/size_regulator.cpp: 85 in main() > > > ________________________________________________________________________________________________________ > > *** CID 117636: Insecure data handling (TAINTED_SCALAR) > /sched/size_regulator.cpp: 85 in main() > 79 hi = atoi(argv[++i]); > 80 } else if (!strcmp(argv[i], "-d")) { > 81 log_messages.set_debug_level(atoi(argv[++i])); > 82 } else if (!strcmp(argv[i], "--debug_leveld")) { > 83 log_messages.set_debug_level(atoi(argv[++i])); > 84 } else if (!strcmp(argv[i], "--sleep_time")) { >>>> CID 117636: Insecure data handling (TAINTED_SCALAR) >>>> Assigning: "sleep_time" = "atoi", which taints "sleep_time". > 85 sleep_time = atoi(argv[++i]); > 86 } else if (!strcmp(argv[i], "--random_order")) { > 87 order_clause = " order by random "; > 88 } else if (!strcmp(argv[i], "--priority_asc")) { > 89 order_clause = " order by priority asc "; > 90 } else if (!strcmp(argv[i], "--priority_order")) { > > ** CID 117635: Null pointer dereferences (REVERSE_INULL) > /client/cs_platforms.cpp: 123 in CLIENT_STATE::detect_platforms()() > > > ________________________________________________________________________________________________________ > > *** CID 117635: Null pointer dereferences (REVERSE_INULL) > /client/cs_platforms.cpp: 123 in CLIENT_STATE::detect_platforms()() > 117 // find the 'uname' executable > 118 do { > 119 if (boinc_file_exists(uname[eno])) break; > 120 } while (uname[++eno] != 0); > 121 > 122 // run it and check the kernel machine architecture. >>>> CID 117635: Null pointer dereferences (REVERSE_INULL) >>>> Null-checking "uname[eno]" suggests that it may be null, but it >>>> has already been dereferenced on all paths leading to the check. > 123 if ( uname[eno] != 0 ) { > 124 strlcpy(cmdline,uname[eno],256); > 125 strlcat(cmdline," -m",256); > 126 if ((f=popen(cmdline,"r"))) { > 127 while (!std::feof(f)) { > 128 if (!fgets(cmdline,256,f)) break; > > ** CID 117634: Null pointer dereferences (REVERSE_INULL) > /client/cs_platforms.cpp: 160 in CLIENT_STATE::detect_platforms()() > > > ________________________________________________________________________________________________________ > > *** CID 117634: Null pointer dereferences (REVERSE_INULL) > /client/cs_platforms.cpp: 160 in CLIENT_STATE::detect_platforms()() > 154 eno=0; > 155 do { > 156 if (boinc_file_exists(file[eno])) break; > 157 } while (file[++eno] != 0); > 158 > 159 // now try to find a 32-bit C library. >>>> CID 117634: Null pointer dereferences (REVERSE_INULL) >>>> Null-checking "file[eno]" suggests that it may be null, but it >>>> has already been dereferenced on all paths leading to the check. > 160 if (file[eno] != 0) { > 161 int i; > 162 for (i=0; i < nlibdirs; i++) { > 163 struct dirent *entry; > 164 DIR *a = opendir(libdir[i]); > 165 // if dir doesn't exist, do the next one > > ** CID 117633: Null pointer dereferences (REVERSE_INULL) > /clientgui/AdvancedFrame.cpp: 1156 in > CAdvancedFrame::OnWizardAttachProject(wxCommandEvent &)() > > > ________________________________________________________________________________________________________ > > *** CID 117633: Null pointer dereferences (REVERSE_INULL) > /clientgui/AdvancedFrame.cpp: 1156 in > CAdvancedFrame::OnWizardAttachProject(wxCommandEvent &)() > 1150 > 1151 CWizardAttach* pWizard = new CWizardAttach(this); > 1152 > 1153 wxString strURL = wxEmptyString; > 1154 pWizard->Run(strURL, false); > 1155 >>>> CID 117633: Null pointer dereferences (REVERSE_INULL) >>>> Null-checking "pWizard" suggests that it may be null, but it >>>> has already been dereferenced on all paths leading to the check. > 1156 if (pWizard) { > 1157 pWizard->Destroy(); > 1158 } > 1159 > 1160 DeleteMenu(); > 1161 CreateMenu(); > > ** CID 117632: Null pointer dereferences (REVERSE_INULL) > /clientgui/sg_BoincSimpleFrame.cpp: 706 in > CSimpleFrame::OnProjectsAttachToProject(wxCommandEvent &)() > > > ________________________________________________________________________________________________________ > > *** CID 117632: Null pointer dereferences (REVERSE_INULL) > /clientgui/sg_BoincSimpleFrame.cpp: 706 in > CSimpleFrame::OnProjectsAttachToProject(wxCommandEvent &)() > 700 > 701 CWizardAttach* pWizard = new CWizardAttach(this); > 702 > 703 wxString strURL = wxEmptyString; > 704 pWizard->Run(strURL, false); > 705 >>>> CID 117632: Null pointer dereferences (REVERSE_INULL) >>>> Null-checking "pWizard" suggests that it may be null, but it >>>> has already been dereferenced on all paths leading to the check. > 706 if (pWizard) > 707 pWizard->Destroy(); > 708 > 709 } else { > 710 ShowNotCurrentlyConnectedAlert(); > 711 } > > ** CID 117631: Null pointer dereferences (NULL_RETURNS) > /clientgui/sg_ProjectWebSitesPopup.cpp: 130 in > CSimpleProjectWebSitesPopupButton::OnMenuLinkClicked(wxCommandEvent &)() > > > ________________________________________________________________________________________________________ > > *** CID 117631: Null pointer dereferences (NULL_RETURNS) > /clientgui/sg_ProjectWebSitesPopup.cpp: 130 in > CSimpleProjectWebSitesPopupButton::OnMenuLinkClicked(wxCommandEvent &)() > 124 > 125 if (menuIDevt == WEBSITE_URL_MENU_ID_HOMEPAGE ) { > 126 wxLaunchDefaultBrowser(wxString(ctrl_url, wxConvUTF8)); > 127 } else{ > 128 int menuId = menuIDevt - WEBSITE_URL_MENU_ID; > 129 PROJECT* project = pDoc->state.lookup_project(ctrl_url); >>>> CID 117631: Null pointer dereferences (NULL_RETURNS) >>>> Dereferencing a pointer that might be null "project->gui_urls" >>>> when calling "operator []". [Note: The source code implementation >>>> of the function has been overridden by a builtin model.] > 130 project->gui_urls[menuId].name.c_str(); > 131 > 132 > wxLaunchDefaultBrowser(wxString(project->gui_urls[menuId].url.c_str(),wxConvUTF8)); > 133 } > > ** CID 117630: Null pointer dereferences (NULL_RETURNS) > /clientgui/sg_BoincSimpleFrame.cpp: 1089 in > CSimpleGUIPanel::OnProjectsAttachToProject(wxCommandEvent &)() > > > ________________________________________________________________________________________________________ > > *** CID 117630: Null pointer dereferences (NULL_RETURNS) > /clientgui/sg_BoincSimpleFrame.cpp: 1089 in > CSimpleGUIPanel::OnProjectsAttachToProject(wxCommandEvent &)() > 1083 } > 1084 > 1085 > 1086 void > CSimpleGUIPanel::OnProjectsAttachToProject(wxCommandEvent& event) { > 1087 wxLogTrace(wxT("Function Start/End"), > wxT("CSimpleGUIPanel::OnProjectsAttachToProject - Function Begin")); > 1088 >>>> CID 117630: Null pointer dereferences (NULL_RETURNS) >>>> Assigning: "pFrame" = null return value from "wxCheckDynamicCast". > 1089 CSimpleFrame* pFrame = wxDynamicCast(GetParent(), > CSimpleFrame); > 1090 wxASSERT(pFrame); > 1091 > 1092 pFrame->OnProjectsAttachToProject(event); > 1093 > 1094 wxLogTrace(wxT("Function Start/End"), > wxT("CSimpleFrame::OnProjectsAttachToProject - Function End")); > > ** CID 117629: Null pointer dereferences (NULL_RETURNS) > /clientgui/sg_ProjectPanel.cpp: 517 in > CSimpleProjectPanel::UpdateProjectList()() > > > ________________________________________________________________________________________________________ > > *** CID 117629: Null pointer dereferences (NULL_RETURNS) > /clientgui/sg_ProjectPanel.cpp: 517 in > CSimpleProjectPanel::UpdateProjectList()() > 511 // Check to see if we need to reload the project icon > 512 ctrlCount = m_ProjectSelectionCtrl->GetCount(); > 513 for(j=0; j<ctrlCount; j++) { > 514 selData = > (ProjectSelectionData*)m_ProjectSelectionCtrl->GetClientData(j); > 515 ctrl_url = selData->project_url; > 516 project = pDoc->state.lookup_project(ctrl_url); >>>> CID 117629: Null pointer dereferences (NULL_RETURNS) >>>> Dereferencing a null pointer "project". > 517 if ( project->project_files_downloaded_time > > selData->project_files_downloaded_time ) { > 518 wxBitmap* projectBM = > GetProjectSpecificBitmap(ctrl_url); > 519 selData->project_files_downloaded_time = > project->project_files_downloaded_time; > 520 m_ProjectSelectionCtrl->SetItemBitmap(j, > *projectBM); > 521 } > 522 } > > > ________________________________________________________________________________________________________ > > To view the defects in Coverity Scan visit, > https://scan.coverity.com/projects/boinc-boinc?tab=overview > > To manage Coverity Scan email notifications for > "[email protected]", click > https://scan.coverity.com/subscriptions/edit?email=davea%40ssl.berkeley.edu&token=23a67db0c16c6cf9e2c419515a6c586f > > > > _______________________________________________ > boinc_dev mailing list > [email protected] > http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev > To unsubscribe, visit the above URL and > (near bottom of page) enter your email address. _______________________________________________ boinc_dev mailing list [email protected] http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
