Project

General

Profile

Actions

Bug #15495

closed

sun_fc: void operator delete(void*) called

Added by Toomas Soome 12 days ago. Updated 6 days ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
lib - userland libraries
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
External Bug:

Description

Build errors with gcc 12:

    ../common/HBANPIVPort.cc: In member function 'std::string HBANPIVPort::lookupControllerPath(std::string)':
    ../common/HBANPIVPort.cc:85:32: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
       85 |                 delete (dir_buf);
          |                                ^
    ../common/HBANPIVPort.cc:79:75: note: returned from 'void* operator new [](size_t)'
       79 |         uchar_t *dir_buf = new uchar_t[sizeof (struct dirent) + MAXPATHLEN];
          |                                                                           ^
    ../common/HBANPIVPort.cc:104:48: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      104 |                                 delete (dir_buf);
          |                                                ^
    ../common/HBANPIVPort.cc:79:75: note: returned from 'void* operator new [](size_t)'
       79 |         uchar_t *dir_buf = new uchar_t[sizeof (struct dirent) + MAXPATHLEN];
          |                                                                           ^
    ../common/HBANPIVPort.cc:111:24: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      111 |         delete (dir_buf);
          |                        ^
    ../common/HBANPIVPort.cc:79:75: note: returned from 'void* operator new [](size_t)'
       79 |         uchar_t *dir_buf = new uchar_t[sizeof (struct dirent) + MAXPATHLEN];
          |                                                                           ^
    cc1plus: all warnings being treated as errors

    ../common/Sun_fcGetFcpTargetMapping.cc: In function 'HBA_STATUS Sun_fcGetFcpTargetMapping(HBA_HANDLE, PHBA_FCPTARGETMAPPING)':
    ../common/Sun_fcGetFcpTargetMapping.cc:127:25: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      127 |         delete(mappingV2);
          |                         ^
    ../common/Sun_fcGetFcpTargetMapping.cc:97:44: note: returned from 'void* operator new [](std::size_t)'
       97 |             sizeof (HBA_FCPTARGETMAPPINGV2)];
          |                                            ^
    cc1plus: all warnings being treated as errors

    ../common/TgtFCHBA.cc: In static member function 'static void TgtFCHBA::loadAdapters(std::vector<HBA*>&)':
    ../common/TgtFCHBA.cc:289:31: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      289 |             delete (tgthbaList);
          |                               ^
    ../common/TgtFCHBA.cc:277:62: note: returned from 'void* operator new [](std::size_t)'
      277 |         tgthbaList = (fc_tgt_hba_list_t *)new uchar_t[bufSize];
          |                                                              ^
    ../common/TgtFCHBA.cc:308:31: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      308 |             delete (tgthbaList);
          |                               ^
    ../common/TgtFCHBA.cc:277:62: note: returned from 'void* operator new [](std::size_t)'
      277 |         tgthbaList = (fc_tgt_hba_list_t *)new uchar_t[bufSize];
          |                                                              ^
    ../common/TgtFCHBA.cc:331:26: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      331 |         delete(tgthbaList);
          |                          ^
    ../common/TgtFCHBA.cc:277:62: note: returned from 'void* operator new [](std::size_t)'
      277 |         tgthbaList = (fc_tgt_hba_list_t *)new uchar_t[bufSize];
          |                                                              ^
    ../common/TgtFCHBA.cc:335:23: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      335 |     delete (tgthbaList);
          |                       ^
    ../common/TgtFCHBA.cc:277:62: note: returned from 'void* operator new [](std::size_t)'
      277 |         tgthbaList = (fc_tgt_hba_list_t *)new uchar_t[bufSize];
          |                                                              ^
    cc1plus: all warnings being treated as errors

    ../common/FCHBAPort.cc: In constructor 'FCHBAPort::FCHBAPort(std::string)':
    ../common/FCHBAPort.cc:493:41: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      493 |                         delete (pathList);
          |                                         ^
    ../common/FCHBAPort.cc:484:75: note: returned from 'void* operator new [](std::size_t)'
      484 |                 pathList = (fc_hba_npiv_port_list_t *) new uchar_t[bufSize];
          |                                                                           ^
    ../common/FCHBAPort.cc:505:25: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      505 |         delete (pathList);
          |                         ^
    ../common/FCHBAPort.cc:484:75: note: returned from 'void* operator new [](std::size_t)'
      484 |                 pathList = (fc_hba_npiv_port_list_t *) new uchar_t[bufSize];
          |                                                                           ^
    ../common/FCHBAPort.cc: In member function 'virtual void FCHBAPort::getTargetMappings(PHBA_FCPTARGETMAPPINGV2)':
    ../common/FCHBAPort.cc:750:29: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      750 |             delete (mappings);
          |                             ^
    ../common/FCHBAPort.cc:732:50: note: returned from 'void* operator new [](std::size_t)'
      732 |                 sizeof (fc_hba_target_mappings_t)];
          |                                                  ^
    ../common/FCHBAPort.cc:838:33: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      838 |                 delete (mappings);
          |                                 ^
    ../common/FCHBAPort.cc:732:50: note: returned from 'void* operator new [](std::size_t)'
      732 |                 sizeof (fc_hba_target_mappings_t)];
          |                                                  ^
    ../common/FCHBAPort.cc:844:29: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      844 |             delete (mappings);
          |                             ^
    ../common/FCHBAPort.cc:732:50: note: returned from 'void* operator new [](std::size_t)'
      732 |                 sizeof (fc_hba_target_mappings_t)];
          |                                                  ^
    ../common/FCHBAPort.cc:849:29: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      849 |             delete (mappings);
          |                             ^
    ../common/FCHBAPort.cc:732:50: note: returned from 'void* operator new [](std::size_t)'
      732 |                 sizeof (fc_hba_target_mappings_t)];
          |                                                  ^
    ../common/FCHBAPort.cc:852:25: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      852 |         delete (mappings);
          |                         ^
    ../common/FCHBAPort.cc:732:50: note: returned from 'void* operator new [](std::size_t)'
      732 |                 sizeof (fc_hba_target_mappings_t)];
          |                                                  ^
    cc1plus: all warnings being treated as errors

    ../common/FCHBA.cc: In static member function 'static void FCHBA::loadAdapters(std::vector<HBA*>&)':
    ../common/FCHBA.cc:389:29: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      389 |             delete (pathList);
          |                             ^
    ../common/FCHBA.cc:377:56: note: returned from 'void* operator new [](std::size_t)'
      377 |         pathList = (fc_hba_list_t *)new uchar_t[bufSize];
          |                                                        ^
    ../common/FCHBA.cc:408:29: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      408 |             delete (pathList);
          |                             ^
    ../common/FCHBA.cc:377:56: note: returned from 'void* operator new [](std::size_t)'
      377 |         pathList = (fc_hba_list_t *)new uchar_t[bufSize];
          |                                                        ^
    ../common/FCHBA.cc:448:24: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      448 |         delete(pathList);
          |                        ^
    ../common/FCHBA.cc:377:56: note: returned from 'void* operator new [](std::size_t)'
      377 |         pathList = (fc_hba_list_t *)new uchar_t[bufSize];
          |                                                        ^
    ../common/FCHBA.cc:452:21: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      452 |     delete (pathList);
          |                     ^
    ../common/FCHBA.cc:377:56: note: returned from 'void* operator new [](std::size_t)'
      377 |         pathList = (fc_hba_list_t *)new uchar_t[bufSize];
          |                                                        ^
    cc1plus: all warnings being treated as errors

    ../common/HBAPort.cc: In member function 'std::string HBAPort::lookupControllerPath(std::string)':
    ../common/HBAPort.cc:241:36: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      241 |                     delete (dir_buf);
          |                                    ^
    ../common/HBAPort.cc:216:75: note: returned from 'void* operator new [](size_t)'
      216 |         uchar_t *dir_buf = new uchar_t[sizeof (struct dirent) + MAXPATHLEN];
          |                                                                           ^
    ../common/HBAPort.cc:248:24: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
      248 |         delete (dir_buf);
          |                        ^
    ../common/HBAPort.cc:216:75: note: returned from 'void* operator new [](size_t)'
      216 |         uchar_t *dir_buf = new uchar_t[sizeof (struct dirent) + MAXPATHLEN];
          |                                                                           ^
    cc1plus: all warnings being treated as errors

We need to use operator delete[]() here. gcc 7 and gcc 10 does not complain but 12 does put end to this. And gcc 7/gcc 10 are happy with delete[]().

Testing done: build, wsdiff is only reporting constant differences.

Actions #1

Updated by Electric Monk 12 days ago

  • Gerrit CR set to 2726
Actions #2

Updated by Toomas Soome 12 days ago

  • Subject changed from sun_fc: void operator delete(void*)' called to sun_fc: void operator delete(void*) called
Actions #3

Updated by Toomas Soome 6 days ago

  • Description updated (diff)
Actions #4

Updated by Electric Monk 6 days ago

  • Status changed from In Progress to Closed
  • % Done changed from 90 to 100

git commit b3385a702fe5f8caba5ad4c451836514efff0bfa

commit  b3385a702fe5f8caba5ad4c451836514efff0bfa
Author: Toomas Soome <tsoome@me.com>
Date:   2023-03-23T21:26:10.000Z

    15495 sun_fc: void operator delete(void*) called
    Reviewed by: Dan Cross <cross@oxidecomputer.com>
    Approved by: Dan McDonald <danmcd@mnx.io>

Actions

Also available in: Atom PDF