[med-svn] [Git][med-team/dcmtk][master] 3 commits: d/rules: cleanup a stray "noname" file.

Étienne Mollier (@emollier) gitlab at salsa.debian.org
Wed Dec 10 21:29:32 GMT 2025



Étienne Mollier pushed to branch master at Debian Med / dcmtk


Commits:
29a92de4 by Étienne Mollier at 2025-12-10T22:06:02+01:00
d/rules: cleanup a stray "noname" file.

Closes: #1122403

- - - - -
422439ad by Étienne Mollier at 2025-12-10T22:27:34+01:00
d/patches/*-CVE-2025-9732.patch: new.

These changes pulled from dcmtk upstream address CVE-2025-9732.

Closes: #1113993

- - - - -
14545817 by Étienne Mollier at 2025-12-10T22:28:56+01:00
d/changelog: ready for upload to unstable.

- - - - -


5 changed files:

- debian/changelog
- + debian/patches/0013-CVE-2025-9732.patch
- + debian/patches/0014-CVE-2025-9732.patch
- debian/patches/series
- debian/rules


Changes:

=====================================
debian/changelog
=====================================
@@ -1,3 +1,13 @@
+dcmtk (3.6.9-6) unstable; urgency=medium
+
+  * Team upload.
+  * d/rules: cleanup a stray "noname" file. (Closes: #1122403)
+  * d/patches/*-CVE-2025-9732.patch: new.
+    These changes pulled from dcmtk upstream address CVE-2025-9732.
+    (Closes: #1113993)
+
+ -- Étienne Mollier <emollier at debian.org>  Wed, 10 Dec 2025 22:28:44 +0100
+
 dcmtk (3.6.9-5) unstable; urgency=medium
 
   * d/control: relax dependency on dcmtk-data. Closes: #1098944


=====================================
debian/patches/0013-CVE-2025-9732.patch
=====================================
@@ -0,0 +1,397 @@
+Description: Fixed issue with invalid "YBR_FULL" DICOM images.
+ Fixed an issue when processing an invalid DICOM image with a Photometric
+ Interpretation of "YBR_FULL" and a Planar Configuration of "1" where
+ the number of pixels stored does not match the expected number of pixels
+ (much too less). Now, the pixel data of such an image is not processed
+ at all, but an empty image (black pixels) is created instead. The user
+ is warned about this by an appropriate log message.
+ .
+ Thanks to Ding zhengzheng <xiaozheng.ding399 at gmail.com> for the report
+ and the sample file (PoC).
+Author: Joerg Riesmeier <dicom at jriesmeier.com>
+Applied-Upstream: 7ad81d69b19714936e18ea5fc74edaeb9f021ce7
+Reviewed-By: Étienne Mollier <emollier at debian.org>
+Last-Update: 2025-08-15
+
+--- dcmtk.orig/dcmimage/include/dcmtk/dcmimage/dicopxt.h
++++ dcmtk/dcmimage/include/dcmtk/dcmimage/dicopxt.h
+@@ -574,7 +574,11 @@
+                 {
+                     /* erase empty part of the buffer (=blacken the background) */
+                     if (InputCount < Count)
+-                        OFBitmanipTemplate<T>::zeroMem(Data[j] + InputCount, Count - InputCount);
++                    {
++                        const size_t count = (Count - InputCount);
++                        DCMIMAGE_TRACE("filing empty part of the intermediate pixel data (" << count << " pixels) of plane " << j << " with value = 0");
++                        OFBitmanipTemplate<T>::zeroMem(Data[j] + InputCount, count);
++                    }
+                 } else {
+                     DCMIMAGE_DEBUG("cannot allocate memory buffer for 'Data[" << j << "]' in DiColorPixelTemplate::Init()");
+                     result = 0;     // at least one buffer could not be allocated!
+--- dcmtk.orig/dcmimage/include/dcmtk/dcmimage/diybrpxt.h
++++ dcmtk/dcmimage/include/dcmtk/dcmimage/diybrpxt.h
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1998-2016, OFFIS e.V.
++ *  Copyright (C) 1998-2025, OFFIS e.V.
+  *  All rights reserved.  See COPYRIGHT file for details.
+  *
+  *  This software and supporting documentation were developed by
+@@ -24,6 +24,7 @@
+ #define DIYBRPXT_H
+ 
+ #include "dcmtk/config/osconfig.h"
++#include "dcmtk/ofstd/ofbmanip.h"
+ 
+ #include "dcmtk/dcmimage/dicopxt.h"
+ #include "dcmtk/dcmimgle/diinpx.h"  /* gcc 3.4 needs this */
+@@ -90,179 +91,189 @@
+             // use the number of input pixels derived from the length of the 'PixelData'
+             // attribute), but not more than the size of the intermediate buffer
+             const unsigned long count = (this->InputCount < this->Count) ? this->InputCount : this->Count;
+-            if (rgb)    /* convert to RGB model */
++            // make sure that there is sufficient input data (for planar pixel data)
++            if (!this->PlanarConfiguration || (count >= planeSize * 3 /* number of planes */))
+             {
+-                T2 *r = this->Data[0];
+-                T2 *g = this->Data[1];
+-                T2 *b = this->Data[2];
+-                const T2 maxvalue = OFstatic_cast(T2, DicomImageClass::maxval(bits));
+-                DiPixelRepresentationTemplate<T1> rep;
+-                if (bits == 8 && !rep.isSigned())          // only for unsigned 8 bit
++                if (rgb)    /* convert to RGB model */
+                 {
+-                    Sint16 rcr_tab[256];
+-                    Sint16 gcb_tab[256];
+-                    Sint16 gcr_tab[256];
+-                    Sint16 bcb_tab[256];
+-                    const double r_const = 0.7010 * OFstatic_cast(double, maxvalue);
+-                    const double g_const = 0.5291 * OFstatic_cast(double, maxvalue);
+-                    const double b_const = 0.8859 * OFstatic_cast(double, maxvalue);
+-                    unsigned long l;
+-                    for (l = 0; l < 256; ++l)
++                    T2 *r = this->Data[0];
++                    T2 *g = this->Data[1];
++                    T2 *b = this->Data[2];
++                    const T2 maxvalue = OFstatic_cast(T2, DicomImageClass::maxval(bits));
++                    DiPixelRepresentationTemplate<T1> rep;
++                    if (bits == 8 && !rep.isSigned())          // only for unsigned 8 bit
+                     {
+-                        rcr_tab[l] = OFstatic_cast(Sint16, 1.4020 * OFstatic_cast(double, l) - r_const);
+-                        gcb_tab[l] = OFstatic_cast(Sint16, 0.3441 * OFstatic_cast(double, l));
+-                        gcr_tab[l] = OFstatic_cast(Sint16, 0.7141 * OFstatic_cast(double, l) - g_const);
+-                        bcb_tab[l] = OFstatic_cast(Sint16, 1.7720 * OFstatic_cast(double, l) - b_const);
+-                    }
+-                    Sint32 sr;
+-                    Sint32 sg;
+-                    Sint32 sb;
+-                    if (this->PlanarConfiguration)
+-                    {
+-/*
+-                        const T1 *y = pixel;
+-                        const T1 *cb = y + this->InputCount;
+-                        const T1 *cr = cb + this->InputCount;
+-                        for (i = count; i != 0; --i, ++y, ++cb, ++cr)
++                        Sint16 rcr_tab[256];
++                        Sint16 gcb_tab[256];
++                        Sint16 gcr_tab[256];
++                        Sint16 bcb_tab[256];
++                        const double r_const = 0.7010 * OFstatic_cast(double, maxvalue);
++                        const double g_const = 0.5291 * OFstatic_cast(double, maxvalue);
++                        const double b_const = 0.8859 * OFstatic_cast(double, maxvalue);
++                        unsigned long l;
++                        for (l = 0; l < 256; ++l)
+                         {
+-                            sr = OFstatic_cast(Sint32, *y) + OFstatic_cast(Sint32, rcr_tab[*cr]);
+-                            sg = OFstatic_cast(Sint32, *y) - OFstatic_cast(Sint32, gcb_tab[*cb]) - OFstatic_cast(Sint32, gcr_tab[*cr]);
+-                            sb = OFstatic_cast(Sint32, *y) + OFstatic_cast(Sint32, bcb_tab[*cb]);
+-                            *(r++) = (sr < 0) ? 0 : (sr > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sr);
+-                            *(g++) = (sg < 0) ? 0 : (sg > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sg);
+-                            *(b++) = (sb < 0) ? 0 : (sb > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sb);
++                            rcr_tab[l] = OFstatic_cast(Sint16, 1.4020 * OFstatic_cast(double, l) - r_const);
++                            gcb_tab[l] = OFstatic_cast(Sint16, 0.3441 * OFstatic_cast(double, l));
++                            gcr_tab[l] = OFstatic_cast(Sint16, 0.7141 * OFstatic_cast(double, l) - g_const);
++                            bcb_tab[l] = OFstatic_cast(Sint16, 1.7720 * OFstatic_cast(double, l) - b_const);
+                         }
++                        Sint32 sr;
++                        Sint32 sg;
++                        Sint32 sb;
++                        if (this->PlanarConfiguration)
++                        {
++/*
++                            const T1 *y = pixel;
++                            const T1 *cb = y + this->InputCount;
++                            const T1 *cr = cb + this->InputCount;
++                            for (i = count; i != 0; --i, ++y, ++cb, ++cr)
++                            {
++                                sr = OFstatic_cast(Sint32, *y) + OFstatic_cast(Sint32, rcr_tab[*cr]);
++                                sg = OFstatic_cast(Sint32, *y) - OFstatic_cast(Sint32, gcb_tab[*cb]) - OFstatic_cast(Sint32, gcr_tab[*cr]);
++                                sb = OFstatic_cast(Sint32, *y) + OFstatic_cast(Sint32, bcb_tab[*cb]);
++                                *(r++) = (sr < 0) ? 0 : (sr > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sr);
++                                *(g++) = (sg < 0) ? 0 : (sg > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sg);
++                                *(b++) = (sb < 0) ? 0 : (sb > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sb);
++                            }
+ */
+-                        const T1 *y = pixel;
+-                        const T1 *cb = y + planeSize;
+-                        const T1 *cr = cb + planeSize;
+-                        unsigned long i = count;
+-                        while (i != 0)
++                            const T1 *y = pixel;
++                            const T1 *cb = y + planeSize;
++                            const T1 *cr = cb + planeSize;
++                            unsigned long i = count;
++                            while (i != 0)
++                            {
++                                /* convert a single frame */
++                                for (l = planeSize; (l != 0) && (i != 0); --l, --i, ++y, ++cb, ++cr)
++                                {
++                                    sr = OFstatic_cast(Sint32, *y) + OFstatic_cast(Sint32, rcr_tab[*cr]);
++                                    sg = OFstatic_cast(Sint32, *y) - OFstatic_cast(Sint32, gcb_tab[*cb]) - OFstatic_cast(Sint32, gcr_tab[*cr]);
++                                    sb = OFstatic_cast(Sint32, *y) + OFstatic_cast(Sint32, bcb_tab[*cb]);
++                                    *(r++) = (sr < 0) ? 0 : (sr > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sr);
++                                    *(g++) = (sg < 0) ? 0 : (sg > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sg);
++                                    *(b++) = (sb < 0) ? 0 : (sb > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sb);
++                                }
++                                /* jump to next frame start (skip 2 planes) */
++                                y += 2 * planeSize;
++                                cb += 2 * planeSize;
++                                cr += 2 * planeSize;
++                            }
++                        }
++                        else
+                         {
+-                            /* convert a single frame */
+-                            for (l = planeSize; (l != 0) && (i != 0); --l, --i, ++y, ++cb, ++cr)
++                            const T1 *p = pixel;
++                            T1 y;
++                            T1 cb;
++                            T1 cr;
++                            unsigned long i;
++                            for (i = count; i != 0; --i)
+                             {
+-                                sr = OFstatic_cast(Sint32, *y) + OFstatic_cast(Sint32, rcr_tab[OFstatic_cast(Uint32, *cr)]);
+-                                sg = OFstatic_cast(Sint32, *y) - OFstatic_cast(Sint32, gcb_tab[OFstatic_cast(Uint32, *cb)]) - OFstatic_cast(Sint32, gcr_tab[OFstatic_cast(Uint32, *cr)]);
+-                                sb = OFstatic_cast(Sint32, *y) + OFstatic_cast(Sint32, bcb_tab[OFstatic_cast(Uint32, *cb)]);
++                                y  = *(p++);
++                                cb = *(p++);
++                                cr = *(p++);
++                                sr = OFstatic_cast(Sint32, y) + OFstatic_cast(Sint32, rcr_tab[cr]);
++                                sg = OFstatic_cast(Sint32, y) - OFstatic_cast(Sint32, gcb_tab[cb]) - OFstatic_cast(Sint32, gcr_tab[cr]);
++                                sb = OFstatic_cast(Sint32, y) + OFstatic_cast(Sint32, bcb_tab[cb]);
+                                 *(r++) = (sr < 0) ? 0 : (sr > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sr);
+                                 *(g++) = (sg < 0) ? 0 : (sg > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sg);
+                                 *(b++) = (sb < 0) ? 0 : (sb > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sb);
+                             }
+-                            /* jump to next frame start (skip 2 planes) */
+-                            y += 2 * planeSize;
+-                            cb += 2 * planeSize;
+-                            cr += 2 * planeSize;
+                         }
+                     }
+                     else
+                     {
+-                        const T1 *p = pixel;
+-                        T1 y;
+-                        T1 cb;
+-                        T1 cr;
+-                        unsigned long i;
+-                        for (i = count; i != 0; --i)
++                        if (this->PlanarConfiguration)
++                        {
++/*
++                            const T1 *y = pixel;
++                            const T1 *cb = y + this->InputCount;
++                            const T1 *cr = cb + this->InputCount;
++                            for (i = count; i != 0; --i)
++                                convertValue(*(r++), *(g++), *(b++), removeSign(*(y++), offset), removeSign(*(cb++), offset),
++                                    removeSign(*(cr++), offset), maxvalue);
++*/
++                            unsigned long l;
++                            unsigned long i = count;
++                            const T1 *y = pixel;
++                            const T1 *cb = y + planeSize;
++                            const T1 *cr = cb + planeSize;
++                            while (i != 0)
++                            {
++                                /* convert a single frame */
++                                for (l = planeSize; (l != 0) && (i != 0); --l, --i)
++                                {
++                                    convertValue(*(r++), *(g++), *(b++), removeSign(*(y++), offset), removeSign(*(cb++), offset),
++                                        removeSign(*(cr++), offset), maxvalue);
++                                }
++                                /* jump to next frame start (skip 2 planes) */
++                                y += 2 * planeSize;
++                                cb += 2 * planeSize;
++                                cr += 2 * planeSize;
++                            }
++                        }
++                        else
+                         {
+-                            y  = *(p++);
+-                            cb = *(p++);
+-                            cr = *(p++);
+-                            sr = OFstatic_cast(Sint32, y) + OFstatic_cast(Sint32, rcr_tab[OFstatic_cast(Uint32, cr)]);
+-                            sg = OFstatic_cast(Sint32, y) - OFstatic_cast(Sint32, gcb_tab[OFstatic_cast(Uint32, cb)]) - OFstatic_cast(Sint32, gcr_tab[OFstatic_cast(Uint32, cr)]);
+-                            sb = OFstatic_cast(Sint32, y) + OFstatic_cast(Sint32, bcb_tab[OFstatic_cast(Uint32, cb)]);
+-                            *(r++) = (sr < 0) ? 0 : (sr > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sr);
+-                            *(g++) = (sg < 0) ? 0 : (sg > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sg);
+-                            *(b++) = (sb < 0) ? 0 : (sb > OFstatic_cast(Sint32, maxvalue)) ? maxvalue : OFstatic_cast(T2, sb);
++                            const T1 *p = pixel;
++                            T2 y;
++                            T2 cb;
++                            T2 cr;
++                            unsigned long i;
++                            for (i = count; i != 0; --i)
++                            {
++                                y = removeSign(*(p++), offset);
++                                cb = removeSign(*(p++), offset);
++                                cr = removeSign(*(p++), offset);
++                                convertValue(*(r++), *(g++), *(b++), y, cb, cr, maxvalue);
++                            }
+                         }
+                     }
+-                }
+-                else
+-                {
++                } else {    /* retain YCbCr model */
++                    const T1 *p = pixel;
+                     if (this->PlanarConfiguration)
+                     {
+-/*
+-                        const T1 *y = pixel;
+-                        const T1 *cb = y + this->InputCount;
+-                        const T1 *cr = cb + this->InputCount;
+-                        for (i = count; i != 0; --i)
+-                            convertValue(*(r++), *(g++), *(b++), removeSign(*(y++), offset), removeSign(*(cb++), offset),
+-                                removeSign(*(cr++), offset), maxvalue);
+-*/
++    /*
++                        T2 *q;
++                        // number of pixels to be skipped (only applicable if 'PixelData' contains more
++                        // pixels than expected)
++                        const unsigned long skip = (this->InputCount > this->Count) ? (this->InputCount - this->Count) : 0;
++                        for (int j = 0; j < 3; ++j)
++                        {
++                            q = this->Data[j];
++                            for (i = count; i != 0; --i)
++                                *(q++) = removeSign(*(p++), offset);
++                            // skip to beginning of next plane
++                            p += skip;
++                        }
++    */
+                         unsigned long l;
+-                        unsigned long i = count;
+-                        const T1 *y = pixel;
+-                        const T1 *cb = y + planeSize;
+-                        const T1 *cr = cb + planeSize;
+-                        while (i != 0)
++                        unsigned long i = 0;
++                        while (i < count)
+                         {
+-                            /* convert a single frame */
+-                            for (l = planeSize; (l != 0) && (i != 0); --l, --i)
++                            /* store current pixel index */
++                            const unsigned long iStart = i;
++                            for (int j = 0; j < 3; ++j)
+                             {
+-                                convertValue(*(r++), *(g++), *(b++), removeSign(*(y++), offset), removeSign(*(cb++), offset),
+-                                    removeSign(*(cr++), offset), maxvalue);
++                                /* convert a single plane */
++                                for (l = planeSize, i = iStart; (l != 0) && (i < count); --l, ++i)
++                                    this->Data[j][i] = removeSign(*(p++), offset);
+                             }
+-                            /* jump to next frame start (skip 2 planes) */
+-                            y += 2 * planeSize;
+-                            cb += 2 * planeSize;
+-                            cr += 2 * planeSize;
+                         }
+                     }
+                     else
+                     {
+-                        const T1 *p = pixel;
+-                        T2 y;
+-                        T2 cb;
+-                        T2 cr;
++                        int j;
+                         unsigned long i;
+-                        for (i = count; i != 0; --i)
+-                        {
+-                            y = removeSign(*(p++), offset);
+-                            cb = removeSign(*(p++), offset);
+-                            cr = removeSign(*(p++), offset);
+-                            convertValue(*(r++), *(g++), *(b++), y, cb, cr, maxvalue);
+-                        }
++                        for (i = 0; i < count; ++i)                             /* for all pixel ... */
++                            for (j = 0; j < 3; ++j)
++                                this->Data[j][i] = removeSign(*(p++), offset);  /* ... copy planes */
+                     }
+                 }
+-            } else {    /* retain YCbCr model */
+-                const T1 *p = pixel;
+-                if (this->PlanarConfiguration)
+-                {
+-/*
+-                    T2 *q;
+-                    // number of pixels to be skipped (only applicable if 'PixelData' contains more
+-                    // pixels than expected)
+-                    const unsigned long skip = (this->InputCount > this->Count) ? (this->InputCount - this->Count) : 0;
+-                    for (int j = 0; j < 3; ++j)
+-                    {
+-                        q = this->Data[j];
+-                        for (i = count; i != 0; --i)
+-                            *(q++) = removeSign(*(p++), offset);
+-                        // skip to beginning of next plane
+-                        p += skip;
+-                    }
+-*/
+-                    unsigned long l;
+-                    unsigned long i = 0;
+-                    while (i < count)
+-                    {
+-                        /* store current pixel index */
+-                        const unsigned long iStart = i;
+-                        for (int j = 0; j < 3; ++j)
+-                        {
+-                            /* convert a single plane */
+-                            for (l = planeSize, i = iStart; (l != 0) && (i < count); --l, ++i)
+-                                this->Data[j][i] = removeSign(*(p++), offset);
+-                        }
+-                    }
+-                }
+-                else
+-                {
+-                    int j;
+-                    unsigned long i;
+-                    for (i = 0; i < count; ++i)                             /* for all pixel ... */
+-                        for (j = 0; j < 3; ++j)
+-                            this->Data[j][i] = removeSign(*(p++), offset);  /* ... copy planes */
+-                }
++            } else {
++                // do not process the input data, as it is too short
++                DCMIMAGE_WARN("input data is too short, filling the complete image with black pixels");
++                // erase empty part of the buffer (that has not been "blackened" yet)
++                for (int j = 0; j < 3; ++j)
++                    OFBitmanipTemplate<T2>::zeroMem(this->Data[j], count);
+             }
+         }
+     }
+--- dcmtk.orig/dcmimgle/libsrc/dcmimage.cc
++++ dcmtk/dcmimgle/libsrc/dcmimage.cc
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1996-2024, OFFIS e.V.
++ *  Copyright (C) 1996-2025, OFFIS e.V.
+  *  All rights reserved.  See COPYRIGHT file for details.
+  *
+  *  This software and supporting documentation were developed by
+@@ -210,6 +210,7 @@
+                         *(q++) = c;
+                 }
+                 *q = '\0';                                          // end of C string
++                DCMIMGLE_DEBUG("filtered version of 'PhotometricInterpretation' = " << OFSTRING_GUARD(cstr));
+                 while ((pin->Name != NULL) && (strcmp(pin->Name, cstr) != 0))
+                     ++pin;
+                 delete[] cstr;


=====================================
debian/patches/0014-CVE-2025-9732.patch
=====================================
@@ -0,0 +1,22 @@
+Description: Fixed issue with commit 7ad81d69b.
+ Fixed an issue with recently committed changes that fix a problem with
+ invalid YBR_FULL images
+Applied-Upstream: 3de96da6cd66b1af7224561c568bc3de50cd1398
+Author: Joerg Riesmeier <dicom at jriesmeier.com>
+Last-Update: 2025-08-18
+Reviewed-By: Étienne Mollier <emollier at debian.org>
+
+
+diff --git a/dcmimage/include/dcmtk/dcmimage/diybrpxt.h b/dcmimage/include/dcmtk/dcmimage/diybrpxt.h
+index c5415c149..fdaaafc2d 100644
+--- a/dcmimage/include/dcmtk/dcmimage/diybrpxt.h
++++ b/dcmimage/include/dcmtk/dcmimage/diybrpxt.h
+@@ -92,7 +92,7 @@ class DiYBRPixelTemplate
+             // attribute), but not more than the size of the intermediate buffer
+             const unsigned long count = (this->InputCount < this->Count) ? this->InputCount : this->Count;
+             // make sure that there is sufficient input data (for planar pixel data)
+-            if (!this->PlanarConfiguration || (count >= planeSize * 3 /* number of planes */))
++            if (!this->PlanarConfiguration || (count >= planeSize))
+             {
+                 if (rgb)    /* convert to RGB model */
+                 {


=====================================
debian/patches/series
=====================================
@@ -8,3 +8,5 @@ remove_version.patch
 0010-CVE-2025-25474.patch
 0011-CVE-2025-25472.patch
 0012-CVE-2025-2357.patch
+0013-CVE-2025-9732.patch
+0014-CVE-2025-9732.patch


=====================================
debian/rules
=====================================
@@ -97,5 +97,8 @@ override_dh_installdocs:
 override_dh_install-arch:
 	dh_install # --list-missing
 
+execute_before_dh_missing:
+	# Not sure how come this noname appears in the first place.
+	rm -fv debian/tmp/usr/share/man/man1/noname
 
 .PHONY: get-orig-source



View it on GitLab: https://salsa.debian.org/med-team/dcmtk/-/compare/bb07d8ba399af6ad23c7ad3cc3c8d9cc07570b03...14545817d7022fe7d373a728bb274be636d1d790

-- 
View it on GitLab: https://salsa.debian.org/med-team/dcmtk/-/compare/bb07d8ba399af6ad23c7ad3cc3c8d9cc07570b03...14545817d7022fe7d373a728bb274be636d1d790
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20251210/2a56e469/attachment-0001.htm>


More information about the debian-med-commit mailing list