Come and visit this free open source event:

FOSDEM

New

in release 0.24.1 @ 24-Nov-2024 (Gtk+2 & Gtk+3)

  • option -cw (forced contrast remapping) now as intended for CT (= simply capping pixvalues between upper & lower value)
  • fix broken fallback format (i.e. to read DICOM without meta header)
  • PNG: fixed tiny memory leak due to unfreed comment buffer (-fsanitize=address)
  • ECAT6: replaced sprintf() string copies with strncpy() functions
  • security bugfixes / stability improvements: -fsanitize=address [1]
ALL:
- heap buffer overflow: MdcGetImgBuffer() now checks for 0 bytes before calloc()
INTF:
- global buffer overflow: prevent buffer overflow when adding ':=\n' to key
ECAT6:
- stack buffer overflow: handle header strings as unsafe for MdcPrintStr()
DICOM
- memory access violation: dicom_transfer() using a strncmp() safe global buffer
- null pointer dereference: mdc_dicom_printinfo() checks for NULL-pointer as values
- null pointer dereference: dicom_single() checks for proper e->value.CS before strncmp()
- heap buffer overflow: when pixeldata length is unexpected; exit dicom_single() without further processing
ACR+DICOM+INTF:
- stack buffer overflow: MdcKillSpaces() for-loop within boundaries; added initial sanity checks


  1. found and detailed by Zhenqing


in release 0.24.0 @ 24-May-2024 (Gtk+2 & Gtk+3)

DICOM

  • basic.c: quickfix for security vulnerability against malicious DICOM files (= buffer overflow) [1]
(as a workaround the supported element size is now limited to [UINT32_MAX - 4] bytes)

MSYS2

  • m-files.c: MdcGetLastPathDelim() correctly handles mixes of /forward/ & \backward\ slashes.
(bugfix improper filename creations within MSYS2 terminals)
  • dicom/log.c: fix similar compile error with gcc-14 related to system header <io.h> conflict: "ljpg/io.h" renamed to "inout.h".

Gtk+3

  • CSS Styling: small improvements in "speedometer" color scheme. Added our personal hundliv color scheme.


  1. Oops, our very first CVE-2024-29421 notified by Spike Reply Cyber Security Team


in release 0.23.0 @ 04-Jan-2023 (Gtk+2 & Gtk+3)

  • xmedcon.rb: pull in adwaita icons needed for some buttons (eg. increment / decrement).
  • m-fancy.c: printf 64bit integers as long long.
  • m-transf.c: reworked contrast remapping (BUGFIX?).
  • libmdc: got rid of needless GUI dependencies in core library (due to an evil source/Makefile.am),
    so it will be safe to combine AMIDE with XMedCon Gtk+3 and beyond.
  • xfilesel.c: set default name just before showing dialog; fixes name change when new file was loaded.


in release 0.22.0 @ 04-Mar-2022 (Gtk+2 & Gtk+3)

Gtk+3

  • no longer display an error dialog when cursor types are not found (flatpak)
  • environment variable XMEDCONCSS wasn't really read (appimage)

Gtk+2 & Gtk+3

  • configure: generate an installable m-depend.h with ax_prefix_config_h macro using LIBMDC_ prefix
  • stack slices: give stack warnings (differences) between consecutive images

in release 0.21.2 @ 20-Jul-2021 (Gtk+3)

  • Small addition in our speedometer CSS theme: window titlebar is now in dark mode too
  • Learned how to leave out annoying autotools reconfigure rules from Makefiles via AM_MAINTAINER_MODE macro
    • Why? working with most recent autotools version <> older autotools version on most systems <> users are not necessarily developers ...
  • Improvements for Wayland (CentOS Stream / OpenSUSE Tumbleweed)
    • Menu "Online info" core dumps due to "toplevel" window problem
    • Check "Gdk-CRITICAL gdk_monitor_get_workarea: assertion 'GDK_IS_MONITOR ()' failed"
    • gtk_window_set_transient_for(window, parent)
    • Not working GBC-widget (gamma, brightness, contrast)

in release 0.21.1 @ 01-May-2021 (Gtk+3)

  • Require libpng >= 1.6.0 for Ubuntu's sake
  • Added in GUI resizing to fifth and quint
  • Secured two sprintf() statements
  • Updated Inno Setup file for Gtk+3 dependencies
  • Fresh update of application icon
  • GIF89a: write "XMedCon" in application block

in release 0.21.0 @ 19-Feb-2021 (Gtk+3 - Fresh)

  • Now here it is. Finally a GUI port to Gtk+3 after plenty hours of searching & altering deprecated upon deprecated upon deprecated API functions while jumping over way too many hurdles on the way, featuring
    • personal theming with CSS (hello, dark mode)
    • change orientation of main menu
    • macOS: once again supported on brew
    • Windows: worked out how to get such simple Gtk+3 app running standalone with all Gtk+3 dependencies (but dropped 32-bit support on the way)

in release 0.17.0 @ 16-Feb-2021 (Gtk+2)

  • Our Gtk+2 compliant version. Quite some GUI changes by replacing deprecated functions; using cairo contexts, pango fonts, ...
  • Just an intermediary "sources only" release towards Gtk+3 compliance. Note @ 04-jan-2021: released RPM's too.

in release 0.16.3 @ 28-Nov-2020

  • Fix warnings from current gcc "-Wall" option.
  • NIFTI: Remove ".img" string from filenames instead of finding first dot with rude strchr('.') ... failing for '-o ./filename.ext' (1)
    (required because nifti1 library otherwise writes a separate two file .hdr & .img pair)
  • Mute deprecated warnings between Gtk+2 and Glib (>2.61.1) during compilation
    (-Wno-deprecated-declarations).
  • Fix currently broken extraction range handling.
  • GUI: on mswindows zoom window dialogs now display complete instead of partial.
  • GUI: set BILINEAR as default; HYPER seemed deprecated.
  1. issue discovered while solving a ticket by Sumiko Abe.

Initial Linux Flatpak based on release 0.16.2 @ 10-Aug-2020

  • After another long search proces, we finaly got our very first FlatPak ready for the latest release as a single download file instead of using yet another repository. (1)
  1. from advocacy by nokia808

Initial Linux AppImage based on release 0.16.2 @ 01-Aug-2020

  • After a long search proces, we finaly succeeded in creating a generic AppImage file for Linux. The AppImage documentation is rather troublesome and fragmented.

in release 0.16.2 @ 05-Aug-2019

  • must fflush(stdout) within MSYS2: no output on console when waiting for user input (-e, -i, -p, -r ...)
  • increased hardcoded number of loadable LUTs (= 999) because more LUTs are added in (X)MedCon-Extra.
  • BUGFIX: ECAT7 proper handling of patient_birth_date & scan_start_time (1)
  • removed broken #if(n)def HAVE_8BYTE_INT directives, allowing for int64_t and uint64_t pixel values.
  1. patch kindly offered by Jonathan Traum


xmedcon-extra-1.2.1 @ 05-Aug-2019

  • over two hundred color look up tables added from ctp-city (imagej, fiji, gimp, non-linear grey, random, ...)
  • multigrays.c : cli util to create different types of grayscale images.
  • showmaxmin.c : cli util to show max & min values per image or file and their respective pixel location.


in release 0.16.1 @ 28-Dec-2018

  • patch with several spelling corrections ; updating to recent libtools (1)
  • improved homebrew file (2)
  • allow reading InterFile dialects without "END OF INTERFILE" (3)+(4)
  • basic Siemens Interfile support (3)+(4)
  1. donated and requested by Debian maintainer Andreas Tille
  2. corrected by Yen Cecil
  3. ticket by Mark Mandelkern
  4. Siemens specs offered by Jones Judson

xmedcon-extra-1.2.0 @ 27-Apr-2018

some tools in xmedcon-extra are updated due to slight changes in the library: now MdcInit() is mandatory for setting the host endianness.

in release 0.15.0 @ 11-Apr-2018

(just one minor bugfix; mostly fiddling with building the source code)
  • BUGFIX: output file generation fails with mixed path delimiters (mswindows/msys2). (1)
  • homebrew formula contributed for macOS package manager. (2)
  • architecture independent header files. (3)
  • routines added for checking endianess of host: just little or big; nothing else in between.
  • library has some minor changes as a result; so version number got bumped up.
  • modernizing configure and built, say C99 requirements; perhaps breaking older stuff...
  1. found by coincidence with a ticket from Eloy Roura
  2. contributed by Till-Karsten Hauser
  3. request from Fedora maintainer for (X)MedCon Ankur Sinha

code repository @ 22-Okt-2017

  • source code has been merged to Git (CVS is being phased out on SourceForge).

in release 0.14.1 @ 27-Dec-2015

  • oeps, forgot to include zlib1.dll on Windows 32-bit.
  • fixed xmedcon.spec for rpm builds.
  • some files addapted to reflect my development environments.

in release 0.14.0 @ 26-Dec-2015

  • appdata file for (X)MedCon towards better Gnome integration (1)
  • code cleanup due to warnings with LLVM/clang compiler (2)
  • INTF dialects with arrays: proper NULL pointer comparison (3)
  • even more code cleanup or bug fixes with use of cppcheck (4)
  • BUGFIX writing ECAT6/ECAT7: crashes due to "buffer overflow" in bad sprintf() statements (5)
  • sanitizing all sprintf() statements ... ;-)
  1. offered by Ankur Sinha
  2. first heard about at FOSDEM Lightning Talk
  3. ticket opened by dcb
  4. thanks for the tip dcb
  5. thanks for test image Jérôme Redouté

in release 0.13.0 @ 25-Jun-2013

  • BUGFIX: stack slices output filename with directory was wrong.
  • BUGFIX: GUI interactive raw read was seriously broken (buffer overflow entering number of images > 26). (1)
  • BUGFIX: XMDCETC variable was not set properly from configure.
  1. pointed out by Towstego Trevor

in release 0.12.0 @ 23-Nov-2012

  • BUGFIX: some read options not applied in case of file stacking (1)
  • RAW (interactive) file reading allowed in case of file stacking
  1. notified by Mark Woodbridge

in release 0.11.1 @ 26-Aug-2012 (sources only)

  • small source update for Siemens/Concorde format: added new tags & improved calculation of corrected injected_dose (1)
  1. contributed by Andy Loening

in release 0.11.0 @ 05-Jan-2012

  • reverse slices (-rs) only reverses slices within (time) frames (dynamic PET) (1)
  • patch for compilation with libpng15 (2)
  • mswindows: native 64bit version included
  1. requested by David Wack
  2. kindly offered by Bernd Feige

in release 0.10.7a @ 05-Dec-2010

  • UPDATE: windows distribution missed zlib1.dll file (1)
  1. notified by Bart Cornelissen

in release 0.10.7 @ 15-Sep-2010

  • PNG: ./configure with exclusive use of pkg-config
  • ECAT7 writing: include stripped down Turku PET Centre library
  • ECAT7 writing: fix bug where scan_start_time changes due to timezone settings.

in release 0.10.6 @ 30-Aug-2010

  • "-o out.ext" filenames with a dot, messed up the output "!name of data file" in INTF (1)
  • use of newest autotools
  • wrong date of birth for ECAT7.2 (2)
  • update nifti lib files from version 2.0.0 beta Jul 2010
  1. notified by Hugo Gratama van Andel
  2. notified by Steven Ganzert with notes from Vesa Oikonen (Turku) and Andy Loening

in release 0.10.5 @ 17-May-2009

  • NIFTI: missing feature added to use slice spacing as slice width (1)
  • NIFTI: using nifticlib Version 1.1.0 beta release Aug 2008
  • NIFTI: fixed reading for headers with dimensions set to zero (2)
  • DICOM: bug writing 8-bit images with odd area (3)
  • configure: build LSB friendly; install in /usr & /etc (cfr. OpenSuSE) (4)
  1. noticed by Chris Bishop
  2. noticed by Lee Buyean, Frank Thiele and fix proposed by Andrew Loening
  3. found by Mark Pearson
  4. requested by Sebastian Hilbert

in release 0.10.4 @ 16-Mar-2008

  • CONC BUGFIX: output quantitation wrong
  • NIFTI BUGFIX: quantitation wrong for float pixels with different scale factors per time frame (1)
  • CROP BUGFIX: pixel sizes wrongfully set to crop dimension (2)
  • EBUILD: don't fail on systems without GTK (3)
  1. noticed by Lee Buyean
  2. pointed out by Andy Turner
  3. popped up by Vincent Robert

in release 0.10.3 @ 01-Mar-2008

  • GUI: enable accelerators in menu for GTK2 (1)
  • NIFTI: source from version 1.0.0 beta included
  • NIFTI: BUGFIX getting voxel sizes wrong (pixdim[0]= one-based) (2)
  • NIFTI: BUGFIX for failed conversion from CONC (.img.hdr) (2)
  • EBUILD: minor changes for GTK2
  • just install xmedconrc -> ${prefix}/etc
  1. given by Gert Wollny
  2. noticed by Lee Buyean

in release 0.10.2 @ 03-Dec-2007

  • BUGFIX GUI: rounded floats for INTF and CONC in GTK2 locales with decimal=comma (1)
  • CONC: keep up to date with new headers, read CT files (1)
  • ACR/DICM: prevent SIGFPE for rare fi->dim[3]=0 situation (2)
  1. found by and patch by Andy Loening
  2. noticed by Arno J. Klaassen

in release 0.10.1 @ 19-Nov-2007

  • DICM: padding odd (string) tags with space, just pad UI with '\0' (1)
  • GUI: default support for Gtk+2 version (2)
  • BUGFIX GUI: Reslicing/Transforming screws up default output name
note: for Gtk+1 support, run ./configure --enable-gtk1
  1. notified by Scott Neu
  2. great contribution by Andy Loening

in release 0.9.10 @ 25-Sep-2007 (developers update)

  • prevent build of included NIFTI source in case of valid "--with-nifti-prefix" (1)
  • now stick to autoconf friendly 3 version numbers (2)
  1. requested by XMedCon's Debian maintainer Roland Marcus Rutschmann
  2. requested by AMIDE's Debian maintainer Dominique Belhachemi

in release 0.9.9.7 @ 21-Sep-2007

  • NIFTI: allow overwrite -w option (1)
  • NIFTI: DFWG library v0.6 integrated (1)
  • find out library format support during runtime (2)
  1. notified or requested by Matthew Davidson
  2. contributed by Andy Loening

in release 0.9.9.6.2 @ 21-Aug-2007

  • BUGFIX: DICOM/ACR read coredump (1)
  1. notified by Matthew Davidson

in release 0.9.9.6.1 @ 19-Aug-2007

  • ACR: printout more tags (1)
  • DICOM: GE discovery dictionary added (1)
  • BUGFIX: MdcLoadFile() doesn't allow ECAT7 reading by default (2)
  • RPM: binary now comes linked with read/write support for NIfTI and ECAT7
  1. contributed by Josh Wilson
  2. see this AMIDE mail thread.

in release 0.9.9.6 @ 9-Jul-2007

  • ECAT6+7: our old "-db" option now prints main header entirely (1)
  • ECAT7: writing using Turku PET Centre libraries (2)
  • two FILEINFO parameters added: patient_height and operator_name (2)
  • fix for broken xmedcon.m4 autotools version check (with more than three numbers) (3)
  1. request by Andrew "idoimaging.com" Crabb
  2. contribution by Harri Merisaari
  3. fixed by Hannes Hofmann

in release 0.9.9.5.1 @ 27-May-2007

  • BUGFIX GUI: fix bad rescaling if image_width > screen_width

in release 0.9.9.5 @ 24-May-2007

  • DICOM: fix wrong Series Number (0020,0011) during splitslices. (1)
  • DICOM: redo UID's creation using SDBM hashes (see Docs.Dicom )
  • fi->nr_series, fi->nr_acquisition, fi->nr_instance are now Int32
  • GUI: large images now rescaled to fit on screen (eg. whole body)
  1. mentioned by MIchal Lijowski

in release 0.9.9.4 @ 11-Dec-2006

  • support for nifti headers in "include/nifti" subdir (1)
  • INTF: dynamic support for GE 4.0 PET dialect added (2)
  • DICOM: fix crash for lossless jpeg images width > 1024 (1,3)
  • DICOM: now preserving some extra MR tags in FILEINFO struct (4)
  1. requested by debian maintainer Roland M. Rutschmann
  2. contributed by Andy Loening
  3. thanks to debianizers' hints
  4. requested by Noel Codella

in previous releases

Go check out this huge listing.