]> git.saurik.com Git - apt.git/commitdiff
fix alloc-dealloc-mismatch (operator new [] vs operator delete)
authorDavid Kalnischkies <david@kalnischkies.de>
Fri, 11 Sep 2015 19:15:52 +0000 (21:15 +0200)
committerDavid Kalnischkies <david@kalnischkies.de>
Mon, 14 Sep 2015 13:22:18 +0000 (15:22 +0200)
Reported-By: gcc -fsanitize=address -fno-sanitize=vptr
Git-Dch: Ignore

apt-pkg/packagemanager.cc

index de63c1aa8bd366bfee50565531f2cc05bf57d014..9cbb3fbd2373c1963ad871787c3328ace880f150 100644 (file)
@@ -416,7 +416,7 @@ bool pkgPackageManager::SmartConfigure(PkgIterator Pkg, int const Depth)
          // to do anything at all
         for (DepIterator Cur = Start; true; ++Cur)
         {
          // to do anything at all
         for (DepIterator Cur = Start; true; ++Cur)
         {
-           std::unique_ptr<Version *> VList(Cur.AllTargets());
+           std::unique_ptr<Version *[]> VList(Cur.AllTargets());
 
            for (Version **I = VList.get(); *I != 0; ++I)
            {
 
            for (Version **I = VList.get(); *I != 0; ++I)
            {
@@ -466,7 +466,7 @@ bool pkgPackageManager::SmartConfigure(PkgIterator Pkg, int const Depth)
          // probably due to loops.
         for (DepIterator Cur = Start; true; ++Cur)
         {
          // probably due to loops.
         for (DepIterator Cur = Start; true; ++Cur)
         {
-           std::unique_ptr<Version *> VList(Cur.AllTargets());
+           std::unique_ptr<Version *[]> VList(Cur.AllTargets());
 
            for (Version **I = VList.get(); *I != 0; ++I)
            {
 
            for (Version **I = VList.get(); *I != 0; ++I)
            {
@@ -541,7 +541,7 @@ bool pkgPackageManager::SmartConfigure(PkgIterator Pkg, int const Depth)
         // Search for dependencies which are unpacked but aren't configured yet (maybe loops)
         for (DepIterator Cur = Start; true; ++Cur)
         {
         // Search for dependencies which are unpacked but aren't configured yet (maybe loops)
         for (DepIterator Cur = Start; true; ++Cur)
         {
-           std::unique_ptr<Version *> VList(Cur.AllTargets());
+           std::unique_ptr<Version *[]> VList(Cur.AllTargets());
 
            for (Version **I = VList.get(); *I != 0; ++I)
            {
 
            for (Version **I = VList.get(); *I != 0; ++I)
            {
@@ -760,7 +760,7 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
            // Look for easy targets: packages that are already okay
            for (DepIterator Cur = Start; Bad == true; ++Cur)
            {
            // Look for easy targets: packages that are already okay
            for (DepIterator Cur = Start; Bad == true; ++Cur)
            {
-              std::unique_ptr<Version *> VList(Cur.AllTargets());
+              std::unique_ptr<Version *[]> VList(Cur.AllTargets());
               for (Version **I = VList.get(); *I != 0; ++I)
               {
                  VerIterator Ver(Cache,*I);
               for (Version **I = VList.get(); *I != 0; ++I)
               {
                  VerIterator Ver(Cache,*I);