[med-svn] r13731 - in trunk/packages/dcmtk/trunk/debian: . patches

Mathieu Malaterre malat at alioth.debian.org
Tue May 28 13:16:24 UTC 2013


Author: malat
Date: 2013-05-28 13:16:24 +0000 (Tue, 28 May 2013)
New Revision: 13731

Added:
   trunk/packages/dcmtk/trunk/debian/libdcmtk-data.dirs
   trunk/packages/dcmtk/trunk/debian/libdcmtk-data.install
   trunk/packages/dcmtk/trunk/debian/patches/fixnull.patch
   trunk/packages/dcmtk/trunk/debian/patches/noleak.patch
   trunk/packages/dcmtk/trunk/debian/patches/nothrow.patch
Modified:
   trunk/packages/dcmtk/trunk/debian/changelog
   trunk/packages/dcmtk/trunk/debian/control
   trunk/packages/dcmtk/trunk/debian/libdcmtk2.dirs
   trunk/packages/dcmtk/trunk/debian/patches/series
   trunk/packages/dcmtk/trunk/debian/rules
Log:
Prepare dcmtk upload

Modified: trunk/packages/dcmtk/trunk/debian/changelog
===================================================================
--- trunk/packages/dcmtk/trunk/debian/changelog	2013-05-28 11:54:58 UTC (rev 13730)
+++ trunk/packages/dcmtk/trunk/debian/changelog	2013-05-28 13:16:24 UTC (rev 13731)
@@ -1,3 +1,13 @@
+dcmtk (3.6.0-14) unstable; urgency=low
+
+  * Provide a libdcmtk-data, as per policy, section §8.2. Closes: #709123
+  * Import patches from upstream:
+    + d/p/fixnull.patch
+    + d/p/noleak.patch
+    + d/p/nothrow.patch
+
+ -- Mathieu Malaterre <malat at debian.org>  Tue, 28 May 2013 15:14:58 +0200
+
 dcmtk (3.6.0-13) unstable; urgency=low
 
   * Remove d/README.source, since source-format 3.0

Modified: trunk/packages/dcmtk/trunk/debian/control
===================================================================
--- trunk/packages/dcmtk/trunk/debian/control	2013-05-28 11:54:58 UTC (rev 13730)
+++ trunk/packages/dcmtk/trunk/debian/control	2013-05-28 13:16:24 UTC (rev 13731)
@@ -25,10 +25,23 @@
  .
  Note: This version was compiled with libssl support.
 
+Package: libdcmtk-data
+Architecture: all
+Depends: ${misc:Depends}
+Replaces: libdcmtk2 (<= 3.6.0-13)
+Breaks: libdcmtk2 (<= 3.6.0-13)
+Description: OFFIS DICOM toolkit data dictionaries
+ DCMTK includes a collection of libraries and applications for examining, 
+ constructing and converting DICOM image files, handling offline media, 
+ sending and receiving images over a network connection, as well as 
+ demonstrative image storage and worklist servers. 
+ .
+ This package contains the data dictionares for DCMTK.
+
 Package: libdcmtk2
 Section: libs
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}, libdcmtk-data (= ${source:Version})
 Conflicts: dcmtk (<< 3.6.0)
 Description: OFFIS DICOM toolkit runtime libraries
  DCMTK includes a collection of libraries and applications for examining, 

Added: trunk/packages/dcmtk/trunk/debian/libdcmtk-data.dirs
===================================================================
--- trunk/packages/dcmtk/trunk/debian/libdcmtk-data.dirs	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/libdcmtk-data.dirs	2013-05-28 13:16:24 UTC (rev 13731)
@@ -0,0 +1 @@
+usr/share/dcmtk

Added: trunk/packages/dcmtk/trunk/debian/libdcmtk-data.install
===================================================================
--- trunk/packages/dcmtk/trunk/debian/libdcmtk-data.install	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/libdcmtk-data.install	2013-05-28 13:16:24 UTC (rev 13731)
@@ -0,0 +1 @@
+dcmdata/data/*.dic usr/share/dcmtk

Modified: trunk/packages/dcmtk/trunk/debian/libdcmtk2.dirs
===================================================================
--- trunk/packages/dcmtk/trunk/debian/libdcmtk2.dirs	2013-05-28 11:54:58 UTC (rev 13730)
+++ trunk/packages/dcmtk/trunk/debian/libdcmtk2.dirs	2013-05-28 13:16:24 UTC (rev 13731)
@@ -1,2 +1 @@
 usr/lib
-usr/share/dcmtk

Added: trunk/packages/dcmtk/trunk/debian/patches/fixnull.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/fixnull.patch	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/fixnull.patch	2013-05-28 13:16:24 UTC (rev 13731)
@@ -0,0 +1,36 @@
+From 9fc7bd358d1791a14afdd14c81ce9266b7e12b8a Mon Sep 17 00:00:00 2001
+From: Michael Onken <dicom at offis.de>
+Date: Mon, 27 May 2013 14:52:57 +0200
+Subject: [PATCH] Make sure memcpy does not copy to NULL destination. Thanks to Francesco Gigante
+ for the report.
+
+---
+ CHANGES.361              |    6 ++++++
+ dcmdata/libsrc/dcelem.cc |    7 ++++---
+ 2 files changed, 10 insertions(+), 3 deletions(-)
+
+Index: dcmtk-3.6.0/dcmdata/libsrc/dcelem.cc
+===================================================================
+--- dcmtk-3.6.0.orig/dcmdata/libsrc/dcelem.cc	2010-11-05 10:34:14.000000000 +0100
++++ dcmtk-3.6.0/dcmdata/libsrc/dcelem.cc	2013-05-28 14:11:47.534895101 +0200
+@@ -112,7 +112,8 @@
+         if (pad && fValue)
+             fValue[getLengthField()] = 0;
+ 
+-        memcpy(fValue, elem.fValue, size_t(getLengthField() + pad));
++        if (fValue)
++            memcpy(fValue, elem.fValue, size_t(getLengthField() + pad));
+     }
+ 
+     if (elem.fLoadValue)
+@@ -179,8 +180,8 @@
+ 
+         if (pad && fValue)
+             fValue[getLengthField()] = 0;
+-
+-        memcpy(fValue, obj.fValue, size_t(getLengthField()+pad));
++        if (fValue)
++            memcpy(fValue, obj.fValue, size_t(getLengthField()+pad));
+     }
+ 
+     if (obj.fLoadValue)

Added: trunk/packages/dcmtk/trunk/debian/patches/noleak.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/noleak.patch	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/noleak.patch	2013-05-28 13:16:24 UTC (rev 13731)
@@ -0,0 +1,36 @@
+From 904d810a9d62ab0e1e0aac857371b936f0b70289 Mon Sep 17 00:00:00 2001
+From: Joerg Riesmeier <dicom at jriesmeier.com>
+Date: Fri, 5 Apr 2013 12:32:52 +0200
+Subject: [PATCH] Fixed two possible memory leaks.
+
+These leaks were found by static code analysis, e.g. using cppcheck.
+---
+ CHANGES.361            |    4 ++++
+ dcmnet/libsrc/assoc.cc |   14 +++++++++++---
+ 2 files changed, 15 insertions(+), 3 deletions(-)
+
+Index: dcmtk-3.6.0/dcmnet/libsrc/assoc.cc
+===================================================================
+--- dcmtk-3.6.0.orig/dcmnet/libsrc/assoc.cc	2010-12-01 09:26:35.000000000 +0100
++++ dcmtk-3.6.0/dcmnet/libsrc/assoc.cc	2013-05-28 14:47:09.770871207 +0200
+@@ -1740,10 +1740,18 @@
+     if (cond.bad()) return cond;
+ 
+     cond = ASC_setTransportLayerType(params, useSecureLayer);
+-    if (cond.bad()) return cond;
++    if (cond.bad())
++    {
++        ASC_destroyAssociationParameters(&params);
++        return cond;
++    }
+ 
+     *assoc = (T_ASC_Association *) malloc(sizeof(**assoc));
+-    if (*assoc == NULL) return EC_MemoryExhausted;
++    if (*assoc == NULL)
++    {
++        ASC_destroyAssociationParameters(&params);
++        return EC_MemoryExhausted;
++    }
+     bzero((char*)*assoc, sizeof(**assoc));
+ 
+     (*assoc)->params = params;

Added: trunk/packages/dcmtk/trunk/debian/patches/nothrow.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/nothrow.patch	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/nothrow.patch	2013-05-28 13:16:24 UTC (rev 13731)
@@ -0,0 +1,76 @@
+From 873af0c229b92e5ceba62e5a3f78180a18b395d4 Mon Sep 17 00:00:00 2001
+From: Joerg Riesmeier <dicom at jriesmeier.com>
+Date: Fri, 5 Apr 2013 11:40:36 +0200
+Subject: [PATCH] Use non-throwing new and delete operator.
+
+Use a non-throwing new and delete operator for large memory buffers
+(e.g. pixel data) in order to avoid exceptions.
+---
+ CHANGES.361                               |    7 +++++++
+ dcmimgle/include/dcmtk/dcmimgle/diinpxt.h |   26 +++++++++++++++++++++++---
+ 2 files changed, 30 insertions(+), 3 deletions(-)
+
+Index: dcmtk-3.6.0/dcmimgle/include/dcmtk/dcmimgle/diinpxt.h
+===================================================================
+--- dcmtk-3.6.0.orig/dcmimgle/include/dcmtk/dcmimgle/diinpxt.h	2010-10-14 15:16:26.000000000 +0200
++++ dcmtk-3.6.0/dcmimgle/include/dcmtk/dcmimgle/diinpxt.h	2013-05-28 14:47:03.782871278 +0200
+@@ -172,7 +172,12 @@
+      */
+     virtual ~DiInputPixelTemplate()
+     {
++#if defined(HAVE_STD__NOTHROW) && defined(HAVE_NOTHROW_DELETE)
++        /* use a non-throwing delete (if available) */
++        operator delete[] (Data, std::nothrow);
++#else
+         delete[] Data;
++#endif
+     }
+ 
+     /** determine minimum and maximum pixel value
+@@ -382,7 +387,12 @@
+ #endif
+             /* allocate temporary buffer, even number of bytes required for getUncompressedFrame() */
+             const Uint32 extraByte = ((sizeof(T1) == 1) && (count_T1 & 1)) ? 1 : 0;
++#ifdef HAVE_STD__NOTHROW
++            /* use a non-throwing new here (if available) because the allocated buffer can be huge */
++            pixel = new (std::nothrow) T1[count_T1 + extraByte];
++#else
+             pixel = new T1[count_T1 + extraByte];
++#endif
+             if (pixel != NULL)
+             {
+                 if (uncompressed)
+@@ -444,7 +454,12 @@
+ //          # old code: Count = ((lengthBytes * 8) + bitsAllocated - 1) / bitsAllocated;
+             Count = 8 * length_B1 + (8 * length_B2 + bitsAllocated - 1) / bitsAllocated;
+             register unsigned long i;
++#ifdef HAVE_STD__NOTHROW
++            /* use a non-throwing new here (if available) because the allocated buffer can be huge */
++            Data = new (std::nothrow) T2[Count];
++#else
+             Data = new T2[Count];
++#endif
+             if (Data != NULL)
+             {
+                 DCMIMGLE_TRACE("Input length: " << lengthBytes << " bytes, Pixel count: " << Count
+@@ -609,13 +624,18 @@
+                 }
+             }
+         } else {
+-            // in case of error, reset pixel count variable
++            /* in case of error, reset pixel count variable */
+             Count = 0;
+         }
+         if (deletePixel)
+         {
+-            // delete temporary buffer
++            /* delete temporary buffer */
++#if defined(HAVE_STD__NOTHROW) && defined(HAVE_NOTHROW_DELETE)
++            /* use a non-throwing delete (if available) */
++            operator delete[] (pixel, std::nothrow);
++#else
+             delete[] pixel;
++#endif
+         }
+     }
+ 

Modified: trunk/packages/dcmtk/trunk/debian/patches/series
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/series	2013-05-28 11:54:58 UTC (rev 13730)
+++ trunk/packages/dcmtk/trunk/debian/patches/series	2013-05-28 13:16:24 UTC (rev 13731)
@@ -12,3 +12,6 @@
 bug674361.patch
 underlink.patch
 use_correct_number_of_TS.patch
+fixnull.patch
+nothrow.patch
+noleak.patch

Modified: trunk/packages/dcmtk/trunk/debian/rules
===================================================================
--- trunk/packages/dcmtk/trunk/debian/rules	2013-05-28 11:54:58 UTC (rev 13730)
+++ trunk/packages/dcmtk/trunk/debian/rules	2013-05-28 13:16:24 UTC (rev 13731)
@@ -12,6 +12,7 @@
 # Package installation directories
 pkg=dcmtk
 PKGDIR_DCMTK=$(CURDIR)/debian/$(pkg)
+PKGDIR_DCMTK_DATA=$(CURDIR)/debian/libdcmtk-data
 PKGDIR_DCMTK_LIB=$(CURDIR)/debian/libdcmtk2
 PKGDIR_DCMTK_DEV=$(CURDIR)/debian/libdcmtk2-dev
 PKGDIR_DCMTK_DOC=$(CURDIR)/debian/$(pkg)-doc
@@ -186,7 +187,6 @@
 	dh_installman -a
 	dh_install -a
 	chmod 755 $(PKGDIR_DCMTK_WWW)/usr/lib/dcmtk/cgi-bin/*.p[lh]
-	mv $(PKGDIR_DCMTK)/usr/share/dcmtk/*.dic $(PKGDIR_DCMTK_LIB)/usr/share/dcmtk/
 	dh_link -a
 	dh_lintian -a
 	dh_strip --dbg-package=libdcmtk2-dbg -a




More information about the debian-med-commit mailing list