Skip to content

Commit

Permalink
GitHub pupnp#57 - 1.8.3 broke ABI without changing SONAME
Browse files Browse the repository at this point in the history
Opened by jcowgill

This change in 1.8.3 broke the ABI and therefore the SONAME should have
been changed (ie: age reset to 0):

EXPORT_SPEC int UpnpAddVirtualDir(
	/*! [in] The name of the new directory mapping to add. */
-       const char *dirName);
+       const char *dirName,
+       /*! [in] The cookie to associated with this virtual directory */
+       const void *cookie,
+       /*! [out] The cookie previously associated, if mapping is already present */
+       const void **oldcookie);

If only the cookie argument was added, you could probably get away with
this because all that would happen is that a garbage value is passed
around without being used. With the addition of oldcookie, any old
programs will not initialise this value and will probably segfault when
libupnp tries to write to it.
  • Loading branch information
mrjimenez committed Nov 18, 2017
1 parent 91050cc commit fd277d7
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 1 deletion.
23 changes: 23 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,29 @@
Version 1.8.4
*******************************************************************************

2017-11-17 Marcelo Jimenez <mroberto(at)users.sourceforge.net>

GitHub #57 - 1.8.3 broke ABI without changing SONAME
Opened by jcowgill

This change in 1.8.3 broke the ABI and therefore the SONAME should have
been changed (ie: age reset to 0):

EXPORT_SPEC int UpnpAddVirtualDir(
/*! [in] The name of the new directory mapping to add. */
- const char *dirName);
+ const char *dirName,
+ /*! [in] The cookie to associated with this virtual directory */
+ const void *cookie,
+ /*! [out] The cookie previously associated, if mapping is already present */
+ const void **oldcookie);

If only the cookie argument was added, you could probably get away with
this because all that would happen is that a garbage value is passed
around without being used. With the addition of oldcookie, any old
programs will not initialise this value and will probably segfault when
libupnp tries to write to it.

*******************************************************************************
Version 1.8.3
*******************************************************************************
Expand Down
1 change: 1 addition & 0 deletions THANKS
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ exempt of errors.
- Iain Denniston (ectotropic)
- Ingo Hofmann
- Ivan Romanov (ivanromanov)
- James Cowgill (jcowgill at GitHub)
- Jiri Zouhar
- Jean-Francois Dockes (medoc)
- John Dennis
Expand Down
6 changes: 5 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -376,14 +376,18 @@ dnl ############################################################################
dnl # Release 1.8.4:
dnl # "current:revision:age"
dnl #
dnl # - interfaces changed/added/removed:
dnl # current: 12 -> 13, revision 0 -> 0
dnl # - interfaces removed:
dnl # age: 2 -> 0
dnl # -
dnl #
dnl #AC_SUBST([LT_VERSION_IXML], [::])
dnl #AC_SUBST([LT_VERSION_UPNP], [::])
dnl #
dnl ############################################################################
AC_SUBST([LT_VERSION_IXML], [10:1:0])
AC_SUBST([LT_VERSION_UPNP], [12:0:2])
AC_SUBST([LT_VERSION_UPNP], [13:0:0])
dnl ############################################################################
dnl # Repeating the algorithm to place it closer to the modificatin place:
dnl # - library code modified: revision++
Expand Down

0 comments on commit fd277d7

Please sign in to comment.