Hello community, here is the log from the commit of package snapper for openSUSE:Factory checked in at 2015-01-23 16:17:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/snapper (Old) and /work/SRC/openSUSE:Factory/.snapper.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "snapper" Changes: -------- --- /work/SRC/openSUSE:Factory/snapper/snapper.changes 2014-12-16 14:46:55.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.snapper.new/snapper.changes 2015-01-23 16:17:59.000000000 +0100 @@ -1,0 +2,17 @@ +Mon Jan 19 12:42:13 CET 2015 - [email protected] + +- stricter dbus string escaping (see bsc#913238) +- implemented dbus string escaping in pam_snapper +- version 0.2.5 + +------------------------------------------------------------------- +Mon Jan 12 12:19:30 CET 2015 - [email protected] + +- fixed compilation with clang + +------------------------------------------------------------------- +Mon Dec 15 15:14:39 CET 2014 - [email protected] + +- ignore everything in .snapshots not matching a number + +------------------------------------------------------------------- Old: ---- snapper-0.2.4.tar.bz2 New: ---- snapper-0.2.5.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ snapper.spec ++++++ --- /var/tmp/diff_new_pack.qZrFi2/_old 2015-01-23 16:17:59.000000000 +0100 +++ /var/tmp/diff_new_pack.qZrFi2/_new 2015-01-23 16:17:59.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package snapper # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: snapper -Version: 0.2.4 +Version: 0.2.5 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: snapper-%{version}.tar.bz2 ++++++ snapper-0.2.4.tar.bz2 -> snapper-0.2.5.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/Makefile.am new/snapper-0.2.5/Makefile.am --- old/snapper-0.2.4/Makefile.am 2014-01-29 16:48:30.000000000 +0100 +++ new/snapper-0.2.5/Makefile.am 2015-01-12 13:50:07.000000000 +0100 @@ -11,14 +11,9 @@ EXTRA_DIST = $(doc_DATA) VERSION LIBVERSION - snapper-$(VERSION).tar.bz2: dist-bzip2 -package-local: snapper-$(VERSION).tar.bz2 +package: snapper-$(VERSION).tar.bz2 rm -f package/snapper-*.tar.bz2 - rm -f package/*~ - rm -f package/*.bak mv snapper-$(VERSION).tar.bz2 package/ -package: package-local - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/Makefile.in new/snapper-0.2.5/Makefile.in --- old/snapper-0.2.4/Makefile.in 2014-12-12 14:04:09.000000000 +0100 +++ new/snapper-0.2.5/Makefile.in 2015-01-19 16:56:50.000000000 +0100 @@ -876,14 +876,10 @@ snapper-$(VERSION).tar.bz2: dist-bzip2 -package-local: snapper-$(VERSION).tar.bz2 +package: snapper-$(VERSION).tar.bz2 rm -f package/snapper-*.tar.bz2 - rm -f package/*~ - rm -f package/*.bak mv snapper-$(VERSION).tar.bz2 package/ -package: package-local - # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/VERSION new/snapper-0.2.5/VERSION --- old/snapper-0.2.4/VERSION 2014-09-15 11:42:45.000000000 +0200 +++ new/snapper-0.2.5/VERSION 2015-01-19 16:56:41.000000000 +0100 @@ -1 +1 @@ -0.2.4 +0.2.5 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/client/snapper.cc new/snapper-0.2.5/client/snapper.cc --- old/snapper-0.2.4/client/snapper.cc 2014-12-12 14:01:22.000000000 +0100 +++ new/snapper-0.2.5/client/snapper.cc 2015-01-12 13:50:07.000000000 +0100 @@ -91,7 +91,7 @@ struct MyFiles : public Files { - friend class MyComparison; + friend struct MyComparison; MyFiles(const FilePaths* file_paths) : Files(file_paths) {} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/data/Makefile.am new/snapper-0.2.5/data/Makefile.am --- old/snapper-0.2.4/data/Makefile.am 2014-01-29 16:48:30.000000000 +0100 +++ new/snapper-0.2.5/data/Makefile.am 2014-12-31 13:14:14.000000000 +0100 @@ -4,7 +4,7 @@ EXTRA_DIST = sysconfig.snapper base.txt lvm.txt x11.txt snapper.logrotate \ default-config org.opensuse.Snapper.conf org.opensuse.Snapper.service \ - zypp-plugin.conf + zypp-plugin.conf cleanup.service cleanup.timer timeline.service timeline.timer install-data-local: install -D -m 644 snapper.logrotate $(DESTDIR)/etc/logrotate.d/snapper diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/data/Makefile.in new/snapper-0.2.5/data/Makefile.in --- old/snapper-0.2.4/data/Makefile.in 2014-12-12 14:04:09.000000000 +0100 +++ new/snapper-0.2.5/data/Makefile.in 2015-01-19 16:56:50.000000000 +0100 @@ -256,7 +256,7 @@ top_srcdir = @top_srcdir@ EXTRA_DIST = sysconfig.snapper base.txt lvm.txt x11.txt snapper.logrotate \ default-config org.opensuse.Snapper.conf org.opensuse.Snapper.service \ - zypp-plugin.conf + zypp-plugin.conf cleanup.service cleanup.timer timeline.service timeline.timer all: all-am diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/data/cleanup.service new/snapper-0.2.5/data/cleanup.service --- old/snapper-0.2.4/data/cleanup.service 1970-01-01 01:00:00.000000000 +0100 +++ new/snapper-0.2.5/data/cleanup.service 2014-03-06 17:44:45.000000000 +0100 @@ -0,0 +1,9 @@ + +[Unit] +Description=Daily Cleanup of Snapper Snapshots +Documentation=man:snapper(8) man:snapper-configs(5) + +[Service] +Type=simple +ExecStart=/usr/lib/snapper/systemd-helper --cleanup + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/data/cleanup.timer new/snapper-0.2.5/data/cleanup.timer --- old/snapper-0.2.4/data/cleanup.timer 1970-01-01 01:00:00.000000000 +0100 +++ new/snapper-0.2.5/data/cleanup.timer 2014-03-06 17:44:45.000000000 +0100 @@ -0,0 +1,12 @@ + +[Unit] +Description=Daily Cleanup of Snapper Snapshots +Documentation=man:snapper(8) man:snapper-configs(5) + +[Timer] +OnBootSec=10m +OnUnitActiveSec=1d + +[Install] +WantedBy=basic.target + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/data/timeline.service new/snapper-0.2.5/data/timeline.service --- old/snapper-0.2.4/data/timeline.service 1970-01-01 01:00:00.000000000 +0100 +++ new/snapper-0.2.5/data/timeline.service 2014-03-06 17:44:45.000000000 +0100 @@ -0,0 +1,9 @@ + +[Unit] +Description=Timeline of Snapper Snapshots +Documentation=man:snapper(8) man:snapper-configs(5) + +[Service] +Type=simple +ExecStart=/usr/lib/snapper/systemd-helper --timeline + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/data/timeline.timer new/snapper-0.2.5/data/timeline.timer --- old/snapper-0.2.4/data/timeline.timer 1970-01-01 01:00:00.000000000 +0100 +++ new/snapper-0.2.5/data/timeline.timer 2014-03-06 17:44:45.000000000 +0100 @@ -0,0 +1,11 @@ + +[Unit] +Description=Timeline of Snapper Snapshots +Documentation=man:snapper(8) man:snapper-configs(5) + +[Timer] +OnCalendar=hourly + +[Install] +WantedBy=basic.target + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/dbus/DBusMessage.cc new/snapper-0.2.5/dbus/DBusMessage.cc --- old/snapper-0.2.4/dbus/DBusMessage.cc 2014-01-29 16:48:30.000000000 +0100 +++ new/snapper-0.2.5/dbus/DBusMessage.cc 2015-01-19 16:56:41.000000000 +0100 @@ -305,17 +305,13 @@ } else if (*it == 'x') { - if (++it == in.end()) - throw MarshallingException(); - string t1; - - if (!isxdigit(*it)) - throw MarshallingException(); - t1 += *it; - - if ((it + 1) != in.end() && isxdigit(*(it + 1))) - t1 += *++it; + for (int i = 0; i < 2; ++i) + { + if (++it == in.end() || !isxdigit(*it)) + throw MarshallingException(); + t1 += *it; + } unsigned int t2; sscanf(t1.c_str(), "%x", &t2); @@ -365,7 +361,7 @@ else if ((unsigned char)(*it) > 127) { char s[5]; - snprintf(s, 5, "\\x%x", (unsigned char)(*it)); + snprintf(s, 5, "\\x%02x", (unsigned char)(*it)); out += string(s); } else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/doc/dbus-protocol.txt new/snapper-0.2.5/doc/dbus-protocol.txt --- old/snapper-0.2.4/doc/dbus-protocol.txt 2014-04-10 12:28:10.000000000 +0200 +++ new/snapper-0.2.5/doc/dbus-protocol.txt 2015-01-19 16:56:41.000000000 +0100 @@ -55,7 +55,7 @@ Filenames do not include the subvolume. Strings are UTF-8. Other characters (e.g. in filenames) must be encoded -hexadecimal as "\x?" or "\x??". As a consequence "\" must be encoded as "\\". +hexadecimal as "\x??". As a consequence "\" must be encoded as "\\". Due to security concerns there are no methods to get, compare or revert files. This can be done in the client. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/pam/pam_snapper.c new/snapper-0.2.5/pam/pam_snapper.c --- old/snapper-0.2.4/pam/pam_snapper.c 2014-06-04 12:23:25.000000000 +0200 +++ new/snapper-0.2.5/pam/pam_snapper.c 2015-01-19 16:56:41.000000000 +0100 @@ -3,7 +3,7 @@ * * @section License * - * Copyright (c) 2013 SUSE + * Copyright (c) [2013-2015] SUSE * * All Rights Reserved. * @@ -53,6 +53,7 @@ * Includes */ +#include <stdio.h> #include <unistd.h> #include <stdbool.h> #include <stdint.h> @@ -95,7 +96,7 @@ */ struct dict { const char *key; - const char *val; + const char *value; }; /** @@ -142,6 +143,33 @@ * Functions for DBUS handling */ +static char *cdbus_escape( const char *in ) +{ + char *out = malloc( strlen( in ) * 4 + 1 ); + if ( !out ) + return NULL; + + char *out_p = out; + + for ( const char *in_p = in; *in_p != '\0'; ++in_p ) { + if ( *in_p == '\\' ) { + memcpy( out_p, "\\\\", 2 ); + out_p += 2; + } else if ( ( unsigned char )( *in_p ) > 127 ) { + char s[5]; + snprintf( s, 5, "\\x%02x", ( unsigned char )( *in_p ) ); + memcpy( out_p, s, 4 ); + out_p += 4; + } else { + *out_p++ = *in_p; + } + } + + *out_p = '\0'; + + return out; +} + static int cdbus_msg_send( DBusConnection * conn, DBusMessage * msg, DBusPendingCall ** pend_out ) { DBusPendingCall *pending; @@ -183,14 +211,14 @@ return 0; } -static int cdbus_type_check_get( DBusMessageIter * iter, int expected_type, void *val ) +static int cdbus_type_check_get( DBusMessageIter * iter, int expected_type, void *value ) { int ret; ret = cdbus_type_check( iter, expected_type ); if ( ret < 0 ) { return ret; } - dbus_message_iter_get_basic( iter, val ); + dbus_message_iter_get_basic( iter, value ); return 0; } @@ -213,10 +241,19 @@ return -ENOMEM; } + char *snapper_conf_escaped = cdbus_escape( snapper_conf ); + if ( !snapper_conf_escaped ) { + return -ENOMEM; + } + dbus_message_iter_init_append( msg, &args ); - if ( !dbus_message_iter_append_basic( &args, DBUS_TYPE_STRING, &snapper_conf ) ) { + if ( !dbus_message_iter_append_basic( &args, DBUS_TYPE_STRING, &snapper_conf_escaped ) ) { + free( snapper_conf_escaped ); return -ENOMEM; } + + free( snapper_conf_escaped ); + if ( createmode == createmode_post ) { if ( !dbus_message_iter_append_basic( &args, DBUS_TYPE_UINT32, snapshot_num_in ) ) { return -ENOMEM; @@ -228,10 +265,18 @@ return -ENOMEM; } - if ( !dbus_message_iter_append_basic( &args, DBUS_TYPE_STRING, &cleanup ) ) { - return -ENOMEM; + char *cleanup_escaped = cdbus_escape( cleanup ); + if ( !cleanup_escaped ) { + return -ENOMEM; } + if ( !dbus_message_iter_append_basic( &args, DBUS_TYPE_STRING, &cleanup_escaped ) ) { + free( cleanup_escaped ); + return -ENOMEM; + } + + free( cleanup_escaped ); + dbus_bool_t ret = dbus_message_iter_open_container( &args, DBUS_TYPE_ARRAY, CDBUS_SIG_STRING_DICT, &array_iter ); @@ -246,14 +291,33 @@ if ( !ret ) { return -ENOMEM; } + + char *key_escaped = cdbus_escape( user_data[i].key ); + if ( !key_escaped ) { + return -ENOMEM; + } + if ( !dbus_message_iter_append_basic - ( &struct_iter, DBUS_TYPE_STRING, &user_data[i].key ) ) { + ( &struct_iter, DBUS_TYPE_STRING, &key_escaped ) ) { + free( key_escaped ); return -ENOMEM; } + + free( key_escaped ); + + char *value_escaped = cdbus_escape( user_data[i].value ); + if ( !value_escaped ) { + return -ENOMEM; + } + if ( !dbus_message_iter_append_basic - ( &struct_iter, DBUS_TYPE_STRING, &user_data[i].val ) ) { + ( &struct_iter, DBUS_TYPE_STRING, &value_escaped ) ) { + free( value_escaped ); return -ENOMEM; } + + free( value_escaped ); + ret = dbus_message_iter_close_container( &array_iter, &struct_iter ); if ( !ret ) { return -ENOMEM; @@ -435,7 +499,7 @@ int ret = pam_get_item( pamh, fields[i], ( const void ** )&readval ); if ( ret == PAM_SUCCESS && readval ) { ( *user_data )[*num_user_data].key = names[i]; - ( *user_data )[*num_user_data].val = readval; + ( *user_data )[*num_user_data].value = readval; if ( ( *num_user_data ) < max_user_data ) { ( *num_user_data )++; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/server/Client.cc new/snapper-0.2.5/server/Client.cc --- old/snapper-0.2.4/server/Client.cc 2014-12-12 14:01:22.000000000 +0100 +++ new/snapper-0.2.5/server/Client.cc 2015-01-12 13:50:07.000000000 +0100 @@ -1605,11 +1605,7 @@ { assert(find(name) == entries.end()); -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) entries.emplace_back(name); -#else - entries.push_back(name); -#endif return --entries.end(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/server/MetaSnapper.cc new/snapper-0.2.5/server/MetaSnapper.cc --- old/snapper-0.2.4/server/MetaSnapper.cc 2014-08-01 09:54:24.000000000 +0200 +++ new/snapper-0.2.5/server/MetaSnapper.cc 2015-01-12 13:50:07.000000000 +0100 @@ -205,11 +205,7 @@ for (list<ConfigInfo>::iterator it = config_infos.begin(); it != config_infos.end(); ++it) { -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) entries.emplace_back(*it); -#else - entries.push_back(*it); -#endif } } @@ -233,11 +229,7 @@ ConfigInfo config_info = Snapper::getConfig(config_name); -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) entries.emplace_back(config_info); -#else - entries.push_back(config_info); -#endif } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/snapper/Filesystem.h new/snapper-0.2.5/snapper/Filesystem.h --- old/snapper-0.2.4/snapper/Filesystem.h 2014-06-30 15:03:26.000000000 +0200 +++ new/snapper-0.2.5/snapper/Filesystem.h 2015-01-12 13:50:07.000000000 +0100 @@ -37,7 +37,7 @@ using std::vector; - class MtabData; + struct MtabData; class ConfigInfo; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/snapper/Snapshot.cc new/snapper-0.2.5/snapper/Snapshot.cc --- old/snapper-0.2.4/snapper/Snapshot.cc 2014-04-10 12:28:10.000000000 +0200 +++ new/snapper-0.2.5/snapper/Snapshot.cc 2014-12-15 16:05:45.000000000 +0100 @@ -41,6 +41,7 @@ #include "snapper/SnapperDefines.h" #include "snapper/Exception.h" #include "snapper/SystemCmd.h" +#include "snapper/Regex.h" namespace snapper @@ -187,15 +188,14 @@ void Snapshots::read() { + Regex rx("^[0-9]+$"); + SDir infos_dir = snapper->openInfosDir(); vector<string> infos = infos_dir.entries(); for (vector<string>::const_iterator it1 = infos.begin(); it1 != infos.end(); ++it1) { - if (*it1 == "snapshot_submenu.cfg") - continue; - - if (boost::starts_with(*it1, "tmp-mnt")) + if (!rx.match(*it1)) continue; try diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/testsuite/Makefile.am new/snapper-0.2.5/testsuite/Makefile.am --- old/snapper-0.2.4/testsuite/Makefile.am 2014-12-11 18:21:17.000000000 +0100 +++ new/snapper-0.2.5/testsuite/Makefile.am 2015-01-19 16:56:41.000000000 +0100 @@ -2,11 +2,12 @@ # Makefile.am for snapper/testsuite # -AM_CPPFLAGS = -I$(top_srcdir) +AM_CPPFLAGS = -I$(top_srcdir) $(DBUS_CFLAGS) -LDADD = ../snapper/libsnapper.la -lboost_unit_test_framework +LDADD = ../snapper/libsnapper.la ../dbus/libdbus.la -lboost_unit_test_framework -check_PROGRAMS = sysconfig-get1.test dirname1.test basename1.test equal-date.test +check_PROGRAMS = sysconfig-get1.test dirname1.test basename1.test \ + equal-date.test dbus-escape.test TESTS = $(check_PROGRAMS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/testsuite/Makefile.in new/snapper-0.2.5/testsuite/Makefile.in --- old/snapper-0.2.4/testsuite/Makefile.in 2014-12-12 14:04:10.000000000 +0100 +++ new/snapper-0.2.5/testsuite/Makefile.in 2015-01-19 16:56:51.000000000 +0100 @@ -82,7 +82,8 @@ build_triplet = @build@ host_triplet = @host@ check_PROGRAMS = sysconfig-get1.test$(EXEEXT) dirname1.test$(EXEEXT) \ - basename1.test$(EXEEXT) equal-date.test$(EXEEXT) + basename1.test$(EXEEXT) equal-date.test$(EXEEXT) \ + dbus-escape.test$(EXEEXT) subdir = testsuite DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp $(top_srcdir)/test-driver @@ -97,22 +98,30 @@ basename1_test_SOURCES = basename1.cc basename1_test_OBJECTS = basename1.$(OBJEXT) basename1_test_LDADD = $(LDADD) -basename1_test_DEPENDENCIES = ../snapper/libsnapper.la +basename1_test_DEPENDENCIES = ../snapper/libsnapper.la \ + ../dbus/libdbus.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = +dbus_escape_test_SOURCES = dbus-escape.cc +dbus_escape_test_OBJECTS = dbus-escape.$(OBJEXT) +dbus_escape_test_LDADD = $(LDADD) +dbus_escape_test_DEPENDENCIES = ../snapper/libsnapper.la \ + ../dbus/libdbus.la dirname1_test_SOURCES = dirname1.cc dirname1_test_OBJECTS = dirname1.$(OBJEXT) dirname1_test_LDADD = $(LDADD) -dirname1_test_DEPENDENCIES = ../snapper/libsnapper.la +dirname1_test_DEPENDENCIES = ../snapper/libsnapper.la \ + ../dbus/libdbus.la equal_date_test_SOURCES = equal-date.cc equal_date_test_OBJECTS = equal-date.$(OBJEXT) equal_date_test_DEPENDENCIES = ../client/utils/libutils.la sysconfig_get1_test_SOURCES = sysconfig-get1.cc sysconfig_get1_test_OBJECTS = sysconfig-get1.$(OBJEXT) sysconfig_get1_test_LDADD = $(LDADD) -sysconfig_get1_test_DEPENDENCIES = ../snapper/libsnapper.la +sysconfig_get1_test_DEPENDENCIES = ../snapper/libsnapper.la \ + ../dbus/libdbus.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -147,8 +156,9 @@ am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = -SOURCES = basename1.cc dirname1.cc equal-date.cc sysconfig-get1.cc -DIST_SOURCES = basename1.cc dirname1.cc equal-date.cc \ +SOURCES = basename1.cc dbus-escape.cc dirname1.cc equal-date.cc \ + sysconfig-get1.cc +DIST_SOURCES = basename1.cc dbus-escape.cc dirname1.cc equal-date.cc \ sysconfig-get1.cc am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ @@ -519,8 +529,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -AM_CPPFLAGS = -I$(top_srcdir) -LDADD = ../snapper/libsnapper.la -lboost_unit_test_framework +AM_CPPFLAGS = -I$(top_srcdir) $(DBUS_CFLAGS) +LDADD = ../snapper/libsnapper.la ../dbus/libdbus.la -lboost_unit_test_framework TESTS = $(check_PROGRAMS) AM_DEFAULT_SOURCE_EXT = .cc EXTRA_DIST = $(noinst_SCRIPTS) sysconfig-get1.txt @@ -573,6 +583,10 @@ @rm -f basename1.test$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(basename1_test_OBJECTS) $(basename1_test_LDADD) $(LIBS) +dbus-escape.test$(EXEEXT): $(dbus_escape_test_OBJECTS) $(dbus_escape_test_DEPENDENCIES) $(EXTRA_dbus_escape_test_DEPENDENCIES) + @rm -f dbus-escape.test$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(dbus_escape_test_OBJECTS) $(dbus_escape_test_LDADD) $(LIBS) + dirname1.test$(EXEEXT): $(dirname1_test_OBJECTS) $(dirname1_test_DEPENDENCIES) $(EXTRA_dirname1_test_DEPENDENCIES) @rm -f dirname1.test$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(dirname1_test_OBJECTS) $(dirname1_test_LDADD) $(LIBS) @@ -592,6 +606,7 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-escape.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/equal-date.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sysconfig-get1.Po@am__quote@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.4/testsuite/dbus-escape.cc new/snapper-0.2.5/testsuite/dbus-escape.cc --- old/snapper-0.2.4/testsuite/dbus-escape.cc 1970-01-01 01:00:00.000000000 +0100 +++ new/snapper-0.2.5/testsuite/dbus-escape.cc 2015-01-19 16:56:41.000000000 +0100 @@ -0,0 +1,37 @@ + +#define BOOST_TEST_DYN_LINK +#define BOOST_TEST_MODULE dbus_escape + +#include <boost/test/unit_test.hpp> + +#include <dbus/DBusMessage.h> + + +using namespace DBus; + + +BOOST_AUTO_TEST_CASE(escape) +{ + BOOST_CHECK_EQUAL(Hoho::escape("\\"), "\\\\"); + + BOOST_CHECK_EQUAL(Hoho::escape("ä"), "\\xc3\\xa4"); + BOOST_CHECK_EQUAL(Hoho::escape("0ä0"), "0\\xc3\\xa40"); + + BOOST_CHECK_EQUAL(Hoho::escape("\xff"), "\\xff"); +} + + +BOOST_AUTO_TEST_CASE(unescape) +{ + BOOST_CHECK_EQUAL(Hihi::unescape("\\\\"), "\\"); + + BOOST_CHECK_EQUAL(Hihi::unescape("\\xc3\\xa4"), "ä"); + BOOST_CHECK_EQUAL(Hihi::unescape("0\\xc3\\xa40"), "0ä0"); + + BOOST_CHECK_EQUAL(Hihi::unescape("\\xff"), "\xff"); + + BOOST_CHECK_THROW(Hihi::unescape("\\"), MarshallingException); + BOOST_CHECK_THROW(Hihi::unescape("\\x"), MarshallingException); + BOOST_CHECK_THROW(Hihi::unescape("\\x0"), MarshallingException); + BOOST_CHECK_THROW(Hihi::unescape("\\x0?"), MarshallingException); +} -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
