[Pkg-sssd-devel] ding-libs: Changes to 'master'

Timo Aaltonen tjaalton at moszumanska.debian.org
Sat Dec 23 04:20:56 UTC 2017


 .git-commit-template          |    9 +
 Makefile.am                   |   27 ++-
 collection/collection.c       |    5 
 collection/collection_tools.c |    2 
 configure.ac                  |    5 
 contrib/ding-libs.spec.in     |    6 
 debian/changelog              |    9 +
 debian/compat                 |    2 
 debian/control                |    7 
 debian/copyright              |    2 
 debian/rules                  |    2 
 debian/watch                  |    2 
 dhash/dhash.c                 |   31 ++-
 dhash/dhash.h                 |    4 
 dhash/dhash_ut_check.c        |  226 +++++++++++++++++++++++++++
 dhash/examples/dhash_test.c   |    3 
 ini/ini.d/merge.validator     |   16 -
 ini/ini_augment.c             |  120 ++++++--------
 ini/ini_augment_ut_check.c    |  343 ++++++++++++++++++++++++++++++++++++++++++
 ini/ini_configmod.c           |    3 
 ini/ini_configobj.c           |   71 +++++---
 ini/ini_configobj.h           |    9 -
 ini/ini_defines.h             |    5 
 ini/ini_fileobj.c             |    1 
 ini/ini_get_value.c           |    4 
 ini/ini_get_valueobj.c        |    1 
 ini/ini_parse.c               |   71 +++-----
 ini/ini_parse_ut_check.c      |  157 +++++++++++++++++++
 version.m4                    |    6 
 29 files changed, 962 insertions(+), 187 deletions(-)

New commits:
commit 24ad3a0d4ac0fe88db6d3eac59f2abb9654ecaa2
Author: Timo Aaltonen <tjaalton at debian.org>
Date:   Sat Dec 23 06:20:20 2017 +0200

    releasing package ding-libs version 0.6.1-1

diff --git a/debian/changelog b/debian/changelog
index fe1d274..1c05507 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,11 @@
-ding-libs (0.6.1-1) UNRELEASED; urgency=medium
+ding-libs (0.6.1-1) unstable; urgency=medium
 
   * New upstream release.
   * Update urls.
   * Bump debhelper to 10.
   * Bump policy to 4.1.2, no changes.
 
- -- Timo Aaltonen <tjaalton at debian.org>  Sat, 23 Dec 2017 05:59:06 +0200
+ -- Timo Aaltonen <tjaalton at debian.org>  Sat, 23 Dec 2017 06:19:59 +0200
 
 ding-libs (0.6.0-1) unstable; urgency=medium
 

commit 0ba23fd51cddb5606353c90ae6ecf2aa431b39a2
Author: Timo Aaltonen <tjaalton at debian.org>
Date:   Sat Dec 23 06:06:08 2017 +0200

    Bump policy to 4.1.2, no changes.

diff --git a/debian/changelog b/debian/changelog
index 5bf69db..fe1d274 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ ding-libs (0.6.1-1) UNRELEASED; urgency=medium
   * New upstream release.
   * Update urls.
   * Bump debhelper to 10.
+  * Bump policy to 4.1.2, no changes.
 
  -- Timo Aaltonen <tjaalton at debian.org>  Sat, 23 Dec 2017 05:59:06 +0200
 
diff --git a/debian/control b/debian/control
index 947cdaa..551b6ec 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,7 @@ Build-Depends: debhelper (>= 10),
  quilt,
  check,
  pkg-config,
-Standards-Version: 3.9.8
+Standards-Version: 4.1.2
 Homepage: https://pagure.io/SSSD/ding-libs
 Vcs-Git: https://anonscm.debian.org/git/pkg-sssd/ding-libs.git
 Vcs-Browser: https://anonscm.debian.org/cgit/pkg-sssd/ding-libs.git

commit de6cfa8bab43aff934735cf305cd4b232adc63f4
Author: Timo Aaltonen <tjaalton at debian.org>
Date:   Sat Dec 23 06:04:44 2017 +0200

    Bump debhelper to 10.

diff --git a/debian/changelog b/debian/changelog
index a8aa288..5bf69db 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ ding-libs (0.6.1-1) UNRELEASED; urgency=medium
 
   * New upstream release.
   * Update urls.
+  * Bump debhelper to 10.
 
  -- Timo Aaltonen <tjaalton at debian.org>  Sat, 23 Dec 2017 05:59:06 +0200
 
diff --git a/debian/compat b/debian/compat
index ec63514..f599e28 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-9
+10
diff --git a/debian/control b/debian/control
index ae6fa55..947cdaa 100644
--- a/debian/control
+++ b/debian/control
@@ -3,8 +3,7 @@ Section: libs
 Priority: extra
 Maintainer: Debian SSSD Team <pkg-sssd-devel at lists.alioth.debian.org>
 Uploaders: Timo Aaltonen <tjaalton at debian.org>
-Build-Depends: debhelper (>= 9),
- dh-autoreconf,
+Build-Depends: debhelper (>= 10),
  quilt,
  check,
  pkg-config,
diff --git a/debian/rules b/debian/rules
index ab7c542..b79bbdc 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,7 +5,7 @@
 #export DH_VERBOSE=1
 
 %:
-	dh $@ --with quilt,autoreconf
+	dh $@ --with quilt
 
 override_dh_install:
 	# remove files we don't want to install

commit 93fe3b3d7bca199cc7aeedfa49fdc526fb0a9e23
Author: Timo Aaltonen <tjaalton at debian.org>
Date:   Sat Dec 23 06:02:00 2017 +0200

    Update urls.

diff --git a/debian/changelog b/debian/changelog
index b3b31ac..a8aa288 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 ding-libs (0.6.1-1) UNRELEASED; urgency=medium
 
   * New upstream release.
+  * Update urls.
 
  -- Timo Aaltonen <tjaalton at debian.org>  Sat, 23 Dec 2017 05:59:06 +0200
 
diff --git a/debian/control b/debian/control
index d34dbcc..ae6fa55 100644
--- a/debian/control
+++ b/debian/control
@@ -9,7 +9,7 @@ Build-Depends: debhelper (>= 9),
  check,
  pkg-config,
 Standards-Version: 3.9.8
-Homepage: https://fedorahosted.org/sssd/
+Homepage: https://pagure.io/SSSD/ding-libs
 Vcs-Git: https://anonscm.debian.org/git/pkg-sssd/ding-libs.git
 Vcs-Browser: https://anonscm.debian.org/cgit/pkg-sssd/ding-libs.git
 
diff --git a/debian/copyright b/debian/copyright
index 3f83b9b..1d75ab3 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,6 +1,6 @@
 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: ding-libs
-Source: https://fedorahosted.org/sssd/wiki/Releases#DING-LIBSReleases
+Source: https://pagure.io/SSSD/ding-libs
 
 Files: *
 Copyright: 2009-2016 Dmitri Pal <dpal at redhat.com>
diff --git a/debian/watch b/debian/watch
index 08675e8..7601933 100644
--- a/debian/watch
+++ b/debian/watch
@@ -1,2 +1,2 @@
 version=3
-https://fedorahosted.org/released/ding-libs/ding-libs-(.*).tar.gz
+https://releases.pagure.org/SSSD/ding-libs/ding-libs-(.*).tar.gz

commit 57c85e1dc00ce14187bd7e6e4c90cafe7090da4c
Author: Timo Aaltonen <tjaalton at debian.org>
Date:   Sat Dec 23 05:59:44 2017 +0200

    update changelog

diff --git a/debian/changelog b/debian/changelog
index 4f9c4a4..b3b31ac 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ding-libs (0.6.1-1) UNRELEASED; urgency=medium
+
+  * New upstream release.
+
+ -- Timo Aaltonen <tjaalton at debian.org>  Sat, 23 Dec 2017 05:59:06 +0200
+
 ding-libs (0.6.0-1) unstable; urgency=medium
 
   * New upstream release.

commit ee13e47d309a87d8631cef92df3a47c0c734741d
Author: Michal Židek <mzidek at redhat.com>
Date:   Thu Sep 7 11:58:34 2017 +0200

    Update versions before 0.6.1 release
    
    Reviewed-by: Lukas Slebodnik <lslebodn at redhat.com>

diff --git a/version.m4 b/version.m4
index 08814fe..6022c18 100644
--- a/version.m4
+++ b/version.m4
@@ -1,5 +1,5 @@
 # Primary version number
-m4_define([VERSION_NUMBER], [0.6.0])
+m4_define([VERSION_NUMBER], [0.6.1])
 
 # If the PRERELEASE_VERSION_NUMBER is set, we'll append
 # it to the release tag when creating an RPM or SRPM
@@ -11,8 +11,8 @@ m4_define([VERSION_NUMBER], [0.6.0])
 m4_define([PRERELEASE_VERSION_NUMBER], [])
 
 m4_define([PATH_UTILS_VERSION_NUMBER], [0.2.1])
-m4_define([DHASH_VERSION_NUMBER], [0.4.3])
+m4_define([DHASH_VERSION_NUMBER], [0.5.0])
 m4_define([COLLECTION_VERSION_NUMBER], [0.7.0])
 m4_define([REF_ARRAY_VERSION_NUMBER], [0.1.5])
 m4_define([BASICOBJECTS_VERSION_NUMBER], [0.1.1])
-m4_define([INI_CONFIG_VERSION_NUMBER], [1.3.0])
+m4_define([INI_CONFIG_VERSION_NUMBER], [1.3.1])

commit 403a6fefe7a06c1136e0f0e40391e5f2ec6a8981
Author: Michal Židek <mzidek at redhat.com>
Date:   Thu Sep 7 12:29:47 2017 +0200

    Bump version info
    
    Changes have been made to:
    - libdhash - added new key type for constant strings (added interface)
    - libcollection - just updated code (no interface changes)
    - libini_config - allowed new combination of parsing flags (no interface changes)
    
    Reviewed-by: Lukas Slebodnik <lslebodn at redhat.com>

diff --git a/Makefile.am b/Makefile.am
index 81e40e1..d032739 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -110,7 +110,7 @@ dist_include_HEADERS += dhash/dhash.h
 libdhash_la_SOURCES = dhash/dhash.c
 libdhash_la_DEPENDENCIES = dhash/libdhash.sym
 libdhash_la_LDFLAGS = \
-    -version-info 1:2:0 \
+    -version-info 2:0:1 \
     -Wl,--version-script=$(top_srcdir)/dhash/libdhash.sym
 
 check_PROGRAMS += dhash_test dhash_example
@@ -166,7 +166,7 @@ libcollection_la_SOURCES = \
     trace/trace.h
 libcollection_la_DEPENDENCIES = collection/libcollection.sym
 libcollection_la_LDFLAGS = \
-    -version-info 5:0:1 \
+    -version-info 5:1:1 \
     -Wl,--version-script=$(top_srcdir)/collection/libcollection.sym
 
 check_PROGRAMS += \
@@ -292,7 +292,7 @@ libini_config_la_LIBADD = \
     libref_array.la \
     libbasicobjects.la
 libini_config_la_LDFLAGS = \
-    -version-info 7:0:2 \
+    -version-info 7:1:2 \
     -Wl,--version-script=$(top_srcdir)/ini/libini_config.sym
 
 dist_noinst_DATA += \
diff --git a/contrib/ding-libs.spec.in b/contrib/ding-libs.spec.in
index 3fc079c..0f9b877 100644
--- a/contrib/ding-libs.spec.in
+++ b/contrib/ding-libs.spec.in
@@ -131,7 +131,7 @@ time properties
 %defattr(-,root,root,-)
 %doc COPYING COPYING.LESSER
 %{_libdir}/libdhash.so.1
-%{_libdir}/libdhash.so.1.0.2
+%{_libdir}/libdhash.so.1.1.0
 
 %files -n libdhash-devel
 %defattr(-,root,root,-)
@@ -175,7 +175,7 @@ and serialization
 %doc COPYING
 %doc COPYING.LESSER
 %{_libdir}/libcollection.so.4
-%{_libdir}/libcollection.so.4.1.0
+%{_libdir}/libcollection.so.4.1.1
 
 %files -n libcollection-devel
 %defattr(-,root,root,-)
@@ -304,7 +304,7 @@ structure
 %doc COPYING
 %doc COPYING.LESSER
 %{_libdir}/libini_config.so.5
-%{_libdir}/libini_config.so.5.2.0
+%{_libdir}/libini_config.so.5.2.1
 
 %files -n libini_config-devel
 %defattr(-,root,root,-)

commit b73372021f343e6ef50acadea8786bfb297af75c
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date:   Mon Sep 4 19:24:06 2017 +0200

    DHASH: Do not use c99 structure initialisation
    
    c99 allows to initialize a structure by specifying the structure
    element names e.g. point = { .x = 0, .y = 0};
    
    But it was used just in unit test and therefore it does not make a
    sense to increase requirements from c89 -> c99
    
    Reviewed-by: Michal Židek <mzidek at redhat.com>
    
    merges: https://pagure.io/SSSD/ding-libs/pull-request/3180

diff --git a/dhash/dhash_ut_check.c b/dhash/dhash_ut_check.c
index 246e162..e724931 100644
--- a/dhash/dhash_ut_check.c
+++ b/dhash/dhash_ut_check.c
@@ -40,9 +40,16 @@ START_TEST(test_key_const_string)
     hash_table_t *htable;
     int ret;
     hash_value_t ret_val;
-    hash_value_t enter_val1 = {.type = HASH_VALUE_INT, .i = 1};
-    hash_value_t enter_val2 = {.type = HASH_VALUE_INT, .i = 2};
-    hash_key_t key = {.type = HASH_KEY_CONST_STRING, .c_str = "constant"};
+    hash_value_t enter_val1;
+    hash_value_t enter_val2;
+    hash_key_t key;
+
+    enter_val1.type = HASH_VALUE_INT;
+    enter_val1.i = 1;
+    enter_val2.type = HASH_VALUE_INT;
+    enter_val2.i = 2;
+    key.type = HASH_KEY_CONST_STRING;
+    key.c_str = "constant";
 
     ret = hash_create(HTABLE_SIZE, &htable, NULL, NULL);
     fail_unless(ret == 0);
@@ -87,11 +94,15 @@ START_TEST(test_key_string)
     hash_table_t *htable;
     int ret;
     hash_value_t ret_val;
-    hash_value_t enter_val1 = {.type = HASH_VALUE_INT, .i = 1};
-    hash_value_t enter_val2 = {.type = HASH_VALUE_INT, .i = 2};
+    hash_value_t enter_val1;
+    hash_value_t enter_val2;
     hash_key_t key;
     char str[] = "non_constant";
 
+    enter_val1.type = HASH_VALUE_INT;
+    enter_val1.i = 1;
+    enter_val2.type = HASH_VALUE_INT;
+    enter_val2.i = 2;
     key.type = HASH_KEY_STRING;
     key.str = str;
 
@@ -139,9 +150,16 @@ START_TEST(test_key_ulong)
     hash_table_t *htable;
     int ret;
     hash_value_t ret_val;
-    hash_value_t enter_val1 = {.type = HASH_VALUE_INT, .i = 1};
-    hash_value_t enter_val2 = {.type = HASH_VALUE_INT, .i = 2};
-    hash_key_t key = {.type = HASH_KEY_ULONG, .ul = 68ul};
+    hash_value_t enter_val1;
+    hash_value_t enter_val2;
+    hash_key_t key;
+
+    enter_val1.type = HASH_VALUE_INT;
+    enter_val1.i = 1;
+    enter_val2.type = HASH_VALUE_INT;
+    enter_val2.i = 2;
+    key.type = HASH_KEY_ULONG;
+    key.ul = 68ul;
 
     ret = hash_create(HTABLE_SIZE, &htable, NULL, NULL);
     fail_unless(ret == 0);

commit 321e84768a75fb5bbbbec8922d50f1de59affe4c
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date:   Mon Sep 4 17:45:49 2017 +0200

    COLLECTION: Fix misused comma
    
    Reviewed-by: Michal Židek <mzidek at redhat.com>
    
    Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179

diff --git a/collection/collection_tools.c b/collection/collection_tools.c
index 7e60285..36282a0 100644
--- a/collection/collection_tools.c
+++ b/collection/collection_tools.c
@@ -647,7 +647,7 @@ int col_print_item(struct collection_item *handle, const char *name)
     else {
         if (buf_data.buffer != NULL) {
             if (buf_data.length > 0) buf_data.length--;
-            buf_data.buffer[buf_data.length] = '\0',
+            buf_data.buffer[buf_data.length] = '\0';
             printf("%s\n", buf_data.buffer);
             free(buf_data.buffer);
         }

commit c43a7f0005bd0a5e14a9ca33e10fe2b1413f9e74
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date:   Mon Sep 4 17:44:56 2017 +0200

    INI: Fix doxygen comment for ini_errobj_create
    
    Reviewed-by: Michal Židek <mzidek at redhat.com>
    
    Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179

diff --git a/ini/ini_configobj.h b/ini/ini_configobj.h
index 9d5b516..476ecec 100644
--- a/ini/ini_configobj.h
+++ b/ini/ini_configobj.h
@@ -2071,7 +2071,7 @@ struct ini_errobj;
  * hold error messages from generators. To add messages to
  * the structure use \ref ini_errobj_add_msg.
  *
- * @param[out] errobj         container for errors.
+ * @param[out] _errobj         container for errors.
  *
  * @return Zero on success, nonzero value in case of error.
  */

commit 64e54a72d7e997c6a8f12ac43ca3c0c27dabe93a
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date:   Mon Sep 4 17:37:03 2017 +0200

    COLLECTION: Remove unused macros
    
    Reviewed-by: Michal Židek <mzidek at redhat.com>
    
    Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179

diff --git a/collection/collection.c b/collection/collection.c
index 3d834eb..f7d089b 100644
--- a/collection/collection.c
+++ b/collection/collection.c
@@ -44,11 +44,6 @@
 #define EINTR_INTERNAL 10000
 
 
-/* Potential subject for management with libtools */
-#define DATE_FORMAT "%c"
-
-#define TIME_ARRAY_SIZE 100
-
 /* Magic numbers for hashing */
 #if SIZEOF_LONG == 8
     #define FNV1a_prime 1099511628211ul

commit b892f7220a692e64774c307c26156276d788087b
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date:   Mon Sep 4 17:28:04 2017 +0200

    Do not define _GNU_SOURCE
    
    Let autotools to detect gnu features.
    
    Patch also prefer AC_USE_SYSTEM_EXTENSIONS to deprecated AC_GNU_SOURCE
    
    https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Obsolete-Macros.html#index-AC_005fGNU_005fSOURCE-1960
    
    Reviewed-by: Michal Židek <mzidek at redhat.com>
    
    Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179

diff --git a/configure.ac b/configure.ac
index 048d3ad..1e8e0d2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,10 @@ AC_INIT([ding-libs],
         [sssd-devel at lists.fedorahosted.org])
 AC_CONFIG_SRCDIR([README])
 AC_CONFIG_AUX_DIR([build])
-AC_GNU_SOURCE
+
+m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
+    [AC_USE_SYSTEM_EXTENSIONS],
+    [AC_GNU_SOURCE])
 AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])
 AM_PROG_CC_C_O
 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
diff --git a/ini/ini_augment.c b/ini/ini_augment.c
index 11b0e3b..af5c0b6 100644
--- a/ini/ini_augment.c
+++ b/ini/ini_augment.c
@@ -21,7 +21,6 @@
     along with INI Library.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#define _GNU_SOURCE /* for vasprintf */
 #include "config.h"
 #include <errno.h>
 #include <stdarg.h>
diff --git a/ini/ini_configmod.c b/ini/ini_configmod.c
index 02a188f..da4175c 100644
--- a/ini/ini_configmod.c
+++ b/ini/ini_configmod.c
@@ -19,12 +19,11 @@
     along with INI Library.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#define _GNU_SOURCE /* for asprintf */
+#include "config.h"
 #include <errno.h>
 #include <string.h>
 #include <stdio.h>
 #include <inttypes.h>
-#include "config.h"
 #include "trace.h"
 #include "ref_array.h"
 #include "simplebuffer.h"
diff --git a/ini/ini_fileobj.c b/ini/ini_fileobj.c
index 421d22b..d478d93 100644
--- a/ini/ini_fileobj.c
+++ b/ini/ini_fileobj.c
@@ -18,7 +18,6 @@
     You should have received a copy of the GNU Lesser General Public License
     along with INI Library.  If not, see <http://www.gnu.org/licenses/>.
 */
-#define _GNU_SOURCE /* for asprintf */
 #include "config.h"
 #include <errno.h>
 #include <sys/types.h>

commit 6002a75d2d24a69c46651db0bc723feb7d6aae2b
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date:   Mon Sep 4 17:14:24 2017 +0200

    INI: Fix warning Walloc-size-larger-than
    
    ini/ini_get_value.c: In function ‘get_bin_config_value’:
    ini/ini_get_value.c:552:11: warning: argument 1 range
      [18446744072635809792, 18446744073709551615] exceeds maximum object size
       9223372036854775807 [-Walloc-size-larger-than=]
         value = malloc(len / 2);
         ~~~~~~^~~~~~~~~~~~~~~~~
    In file included from ini/ini_get_value.c:27:0:
    /usr/include/stdlib.h:424:14: note: in a call to allocation function ‘malloc’ declared here
     extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;
                  ^~~~~~
    Reviewed-by: Michal Židek <mzidek at redhat.com>
    
    Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179

diff --git a/ini/ini_get_value.c b/ini/ini_get_value.c
index 0afadd0..2441c14 100644
--- a/ini/ini_get_value.c
+++ b/ini/ini_get_value.c
@@ -501,12 +501,12 @@ const char *get_const_string_config_value(struct collection_item *item, int *err
 char *get_bin_config_value(struct collection_item *item,
                            int *length, int *error)
 {
-    int i;
+    unsigned i;
     char *value = NULL;
     const char *buff;
     int size = 0;
     unsigned char hex;
-    int len;
+    unsigned len;
     const char *str;
 
     TRACE_FLOW_STRING("get_bin_config_value", "Entry");

commit 7db68eb4d8b1955abfefd0676db9329aa6f5f372
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date:   Mon Sep 4 17:09:06 2017 +0200

    DHASH: Suppress gcc7 warning
    
    Such comment is recognized by -Wimplicit-fallthrough=4
    
    dhash/dhash.c: In function ‘hash_iter_next’:
    dhash/dhash.c:748:23: warning: this statement may fall through [-Wimplicit-fallthrough=]
                     state = HI_STATE_2;
                     ~~~~~~^~~~~~~~~~~~
    dhash/dhash.c:750:13: note: here
                 case HI_STATE_2:
                 ^~~~
    dhash/dhash.c:756:23: warning: this statement may fall through [-Wimplicit-fallthrough=]
                     state = HI_STATE_3A;
                     ~~~~~~^~~~~~~~~~~~~
    dhash/dhash.c:758:13: note: here
                 case HI_STATE_3A:
                 ^~~~
    
    Reviewed-by: Michal Židek <mzidek at redhat.com>
    
    Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179

diff --git a/dhash/dhash.c b/dhash/dhash.c
index 98439e8..6b4b51d 100644
--- a/dhash/dhash.c
+++ b/dhash/dhash.c
@@ -746,6 +746,7 @@ static hash_entry_t *hash_iter_next(struct hash_iter_context_t *iter_arg)
                 }
                 iter->j = 0;
                 state = HI_STATE_2;
+                /* FALLTHROUGH */
 
             case HI_STATE_2:
                 if (iter->j >= iter->table->segment_size) {
@@ -754,6 +755,7 @@ static hash_entry_t *hash_iter_next(struct hash_iter_context_t *iter_arg)
                 }
                 iter->p = iter->s[iter->j];
                 state = HI_STATE_3A;
+                /* FALLTHROUGH */
 
             case HI_STATE_3A:
                 if (iter->p == NULL) {

commit 7a95fde3853d260146a5706e53c4750777db281c
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date:   Mon Sep 4 16:34:56 2017 +0200

    INI: Fix memory leaks in unit test test_ini_augment_empty_dir
    
    Reviewed-by: Michal Židek <mzidek at redhat.com>
    
    Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179

diff --git a/ini/ini_augment_ut_check.c b/ini/ini_augment_ut_check.c
index 36a28ec..f7e3b66 100644
--- a/ini/ini_augment_ut_check.c
+++ b/ini/ini_augment_ut_check.c
@@ -308,6 +308,9 @@ START_TEST(test_ini_augment_empty_dir)
     val = ini_get_int32_config_value(vo, 1, 100, NULL);
     fail_unless(val == 1, "Expected attribute value not found.\n");
 
+    ini_free_attribute_list(attrs_list);
+    ini_free_section_list(section_list);
+    ini_config_destroy(result_cfg);
     ini_config_destroy(ini_cfg);
     ini_config_file_destroy(file_ctx);
     remove(empty_dir_path);

commit 5ef9d8106848e2d436a7ba6729bc281f3e1a15b2
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date:   Mon Sep 4 16:20:13 2017 +0200

    INI: Fix usage of buiddir in ini_augment_ut_check
    
    The function getenv does not return dynamically allocated string.
    Therefore we cannot call free for value returned from this function.
    
    Reviewed-by: Michal Židek <mzidek at redhat.com>
    
    Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179
    
    ==26075== 1 errors in context 1 of 4:
    ==26075== Invalid free() / delete / delete[] / realloc()
    ==26075==    at 0x4C30D18: free (vg_replace_malloc.c:530)
    ==26075==    by 0x401E31: test_ini_augment_merge_sections (ini_augment_ut_check.c:224)
    ==26075==    by 0x505A9EB: ??? (in /usr/lib64/libcheck.so.0.0.0)
    ==26075==    by 0x505AEED: srunner_run_tagged (in /usr/lib64/libcheck.so.0.0.0)
    ==26075==    by 0x401223: main (ini_augment_ut_check.c:337)
    ==26075==  Address 0x1fff0006c1 is on thread 1's stack

diff --git a/ini/ini_augment_ut_check.c b/ini/ini_augment_ut_check.c
index ee1162d..36a28ec 100644
--- a/ini/ini_augment_ut_check.c
+++ b/ini/ini_augment_ut_check.c
@@ -76,7 +76,7 @@ START_TEST(test_ini_augment_merge_sections)
         "key1 = augment\n"
         "key3 = exists\n";
 
-    char *builddir;
+    const char *builddir;
 
     uint32_t flags[3] = { INI_MS_DETECT , INI_MS_DETECT | INI_MS_PRESERVE,
                           INI_MS_DETECT | INI_MS_OVERWRITE };
@@ -91,7 +91,7 @@ START_TEST(test_ini_augment_merge_sections)
 
     builddir = getenv("builddir");
     if (builddir == NULL) {
-        builddir = strdup(".");
+        builddir = ".";
     }
 
     snprintf(base_path, PATH_MAX, "%s/tmp_augment_base.conf", builddir);
@@ -221,7 +221,6 @@ START_TEST(test_ini_augment_merge_sections)
 
     remove(base_path);
     remove(augment_path);
-    free(builddir);
 }
 END_TEST
 
@@ -238,7 +237,7 @@ START_TEST(test_ini_augment_empty_dir)
     struct ini_cfgobj *result_cfg = NULL;
     int size;
     char empty_dir_path[PATH_MAX] = {0};
-    char *builddir;
+    const char *builddir;
     int32_t val;
     char base_cfg[] =
         "[section_one]\n"
@@ -246,7 +245,7 @@ START_TEST(test_ini_augment_empty_dir)
 
     builddir = getenv("builddir");
     if (builddir == NULL) {
-        builddir = strdup(".");
+        builddir = ".";
     }
 
     ret = snprintf(empty_dir_path, PATH_MAX, "%s/tmp_empty_dir", builddir);

commit 522866dd20d6f9ec210ce73d78e7fb939d145ba8
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date:   Mon Sep 4 16:12:54 2017 +0200

    BUILD: Fix linking of ini_augment_ut_check
    
    libref_array was used in the unit test but it was mot linked with
    libref_array
      CCLD     ini_augment_ut_check
    /usr/bin/ld: ini/ini_augment_ut_check-ini_augment_ut_check.o:
        undefined reference to symbol 'ref_array_destroy@@REF_ARRAY_0.1.1'
    .libs/libref_array.so.1: error adding symbols: DSO missing from command line
    collect2: error: ld returned 1 exit status
    make[1]: *** [Makefile:1287: ini_augment_ut_check] Error 1
    
    Reviewed-by: Michal Židek <mzidek at redhat.com>
    
    Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179

diff --git a/Makefile.am b/Makefile.am
index 63ff6fe..81e40e1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -367,7 +367,8 @@ ini_configmod_ut_LDADD = libini_config.la libcollection.la \
 
 ini_augment_ut_check_SOURCES = ini/ini_augment_ut_check.c
 ini_augment_ut_check_CFLAGS = $(AM_CFLAGS) $(CHECK_CFLAGS)
-ini_augment_ut_check_LDADD = libini_config.la $(CHECK_LIBS)
+ini_augment_ut_check_LDADD = libini_config.la $(CHECK_LIBS) \
+                             libref_array.la
 
 ini_configmod_ut_check_SOURCES = ini/ini_configmod_ut_check.c
 ini_configmod_ut_check_CFLAGS = $(AM_CFLAGS) $(CHECK_CFLAGS)

commit 3d10336f7f23faff1de1ee575e819582b9a36d46
Author: Michal Židek <mzidek at redhat.com>
Date:   Wed Aug 30 17:18:15 2017 +0200

    INI: Add test for long values
    
    Resolves:
    https://pagure.io/SSSD/ding-libs/issue/3177
    
    Reviewed-by: Jakub Hrozek <jhrozek at redhat.com>
    
    Merges: https://pagure.io/SSSD/ding-libs/pull-request/3178

diff --git a/ini/ini_parse_ut_check.c b/ini/ini_parse_ut_check.c
index f5a671e..d72157b 100644
--- a/ini/ini_parse_ut_check.c
+++ b/ini/ini_parse_ut_check.c
@@ -235,6 +235,52 @@ START_TEST(test_ini_parse_section_key_conflict)
 }
 END_TEST
 
+/* Maybe we should test even bigger values? */
+#define VALUE_LEN 10000
+/* The +100 is space for section name and key name. */
+#define CFGBUF_LEN (VALUE_LEN + 100)
+START_TEST(test_ini_long_value)
+{
+    int ret;
+    struct ini_cfgobj *ini_cfg;
+    struct ini_cfgfile *file_ctx;
+    struct value_obj *vo;
+    char big_val_cfg[CFGBUF_LEN] = {0};
+    char value[VALUE_LEN] = {0};
+    char *value_got;
+
+    /* The value is just a lot of As ending with '\0'*/
+    memset(value, 'A', VALUE_LEN - 1);
+
+    /* Create config file */
+    ret = snprintf(big_val_cfg, CFGBUF_LEN, "[section]\nkey=%s", value);
+
+    ret = ini_config_file_from_mem(big_val_cfg, strlen(big_val_cfg),
+                                   &file_ctx);
+    fail_unless(ret == EOK, "Failed to load config. Error %d.\n", ret);
+
+    ret = ini_config_create(&ini_cfg);
+    fail_unless(ret == EOK, "Failed to create config. Error %d.\n", ret);
+    ret = ini_config_parse(file_ctx, INI_STOP_ON_ERROR, INI_MV1S_ALLOW, 0,
+                           ini_cfg);
+    fail_if(ret != 0, "Failed to parse config. Error %d.\n", ret);
+
+    ret = ini_get_config_valueobj("section", "key", ini_cfg,
+                                  INI_GET_FIRST_VALUE, &vo);
+    fail_unless(ret == EOK, "ini_get_config_valueobj returned %d\n: %s", ret,
+                strerror(ret));
+
+    value_got = ini_get_string_config_value(vo, &ret);
+    fail_unless(ret == EOK, "ini_get_int_config_value returned %d\n: %s", ret,
+                strerror(ret));
+
+    fail_unless(strcmp(value, value_got) == 0, "Expected and found values differ!\n");
+    free(value_got);
+    ini_config_destroy(ini_cfg);
+    ini_config_file_destroy(file_ctx);
+}
+END_TEST
+
 static Suite *ini_parse_suite(void)
 {
     Suite *s = suite_create("ini_parse_suite");
@@ -242,6 +288,7 @@ static Suite *ini_parse_suite(void)
     TCase *tc_parse = tcase_create("ini_parse");
     tcase_add_test(tc_parse, test_ini_parse_non_kvp);
     tcase_add_test(tc_parse, test_ini_parse_section_key_conflict);
+    tcase_add_test(tc_parse, test_ini_long_value);
 
     suite_add_tcase(s, tc_parse);
 

commit 7099295e99467fdf66f3e6da86c8e8b972960219
Author: Michal Židek <mzidek at redhat.com>
Date:   Wed Aug 30 15:27:23 2017 +0200

    INI: Allow longer values then PATH_MAX
    
    The older API used fgets to read the values and the
    size of buffer to hold the line was fixed. With the
    new API we use getline to get the whole line and this
    does not require pre-allocated buffer. The check
    for lenght was not necessary here.
    
    Resolves:
    https://pagure.io/SSSD/ding-libs/issue/3177
    
    Reviewed-by: Jakub Hrozek <jhrozek at redhat.com>
    
    Merges: https://pagure.io/SSSD/ding-libs/pull-request/3178

diff --git a/ini/ini_parse.c b/ini/ini_parse.c
index 55891ec..8d50725 100644
--- a/ini/ini_parse.c
+++ b/ini/ini_parse.c
@@ -338,31 +338,22 @@ static int parser_read(struct parser_obj *po)
             free(buffer);
         }
         else {
-            /* Check length */
-            if (len >= BUFFER_SIZE) {
-                TRACE_ERROR_STRING("Too long", "");
-                action = PARSE_ERROR;
-                po->last_error = ERR_LONGDATA;
-                free(buffer);
+            /* Trim end line */
+            i = len - 1;
+            while ((i >= 0) &&
+                   ((buffer[i] == '\r') ||
+                    (buffer[i] == '\n'))) {
+                TRACE_INFO_NUMBER("Offset:", i);
+                TRACE_INFO_NUMBER("Code:", buffer[i]);
+                buffer[i] = '\0';
+                i--;
             }
-            else {
-                /* Trim end line */
-                i = len - 1;
-                while ((i >= 0) &&
-                       ((buffer[i] == '\r') ||
-                        (buffer[i] == '\n'))) {
-                    TRACE_INFO_NUMBER("Offset:", i);
-                    TRACE_INFO_NUMBER("Code:", buffer[i]);
-                    buffer[i] = '\0';
-                    i--;
-                }
 
-                po->last_read = buffer;
-                po->last_read_len = i + 1;
-                action = PARSE_INSPECT;
-                TRACE_INFO_STRING("Line:", po->last_read);
-                TRACE_INFO_NUMBER("Linelen:", po->last_read_len);
-            }
+            po->last_read = buffer;
+            po->last_read_len = i + 1;
+            action = PARSE_INSPECT;
+            TRACE_INFO_STRING("Line:", po->last_read);
+            TRACE_INFO_NUMBER("Linelen:", po->last_read_len);
         }
     }
 

commit 8ad8417d859997f849cf68a166259c2667214fa9
Author: Michal Židek <mzidek at redhat.com>
Date:   Tue Aug 29 18:44:53 2017 +0200

    INI: do not use readdir_r
    
    readdir_r has some limitations and was deprecated in favor of readdir.
    See man 3 readdir (not to confuse with man 2 readdir).
    
    Resolves:
    https://pagure.io/SSSD/ding-libs/issue/3175
    
    Merges: https://pagure.io/SSSD/ding-libs/pull-request/3176
    
    Reviewed-by: Jakub Hrozek <jhrozek at redhat.com>

diff --git a/ini/ini_augment.c b/ini/ini_augment.c
index b92f030..11b0e3b 100644
--- a/ini/ini_augment.c
+++ b/ini/ini_augment.c
@@ -363,14 +363,11 @@ static int ini_aug_construct_list(char *dirname ,
 
     int error = EOK;
     DIR *dir = NULL;
-    struct dirent *entry = NULL;
     struct dirent *entryp = NULL;
     char *snipname = NULL;
     char fullname[PATH_MAX + 1] = {0};
     struct ref_array *ra_regex = NULL;
     bool match = false;
-    int len = 0;
-    int name_max;
 
     TRACE_FLOW_ENTRY();
 
@@ -399,55 +396,42 @@ static int ini_aug_construct_list(char *dirname ,
         return EOK;
     }
 
-    /* Allocate memory for entry (as said in man pages)*/
-    name_max = pathconf(dirname, _PC_NAME_MAX);
-    if (name_max == -1)          /* Limit not defined, or error */
-        name_max = 1024;         /* Take a guess */
-    len = offsetof(struct dirent, d_name) + name_max + 1;
-    entry = malloc(len);
-    if (entry == NULL) {
-        TRACE_ERROR_NUMBER("Failed to allocate memory.", ENOMEM);
-        ref_array_destroy(ra_regex);
-        closedir(dir);
-        return ENOMEM;
-    }
-
     /* Loop through the directory */
     while (true)
     {
-        error = readdir_r(dir, entry, &entryp);
-        if (error) {
+        errno = 0;
+        entryp = readdir(dir);
+        if (entryp == NULL && errno != 0) {
+            error = errno;
             TRACE_ERROR_NUMBER("Failed to read directory.", error);
             ref_array_destroy(ra_regex);
             closedir(dir);
-            free(entry);
             return error;
         }
 
         /* Stop looping if we reached the end */
         if (entryp == NULL) break;
 
-        TRACE_INFO_STRING("Processing", entry->d_name);
+        TRACE_INFO_STRING("Processing", entryp->d_name);
 
         /* Always skip current and parent dirs */
-        if ((strncmp(entry->d_name,
+        if ((strncmp(entryp->d_name,
                      INI_CURRENT_DIR,
                      sizeof(INI_CURRENT_DIR)) == 0) ||
-            (strncmp(entry->d_name,
+            (strncmp(entryp->d_name,
                      INI_PARENT_DIR,
                      sizeof(INI_PARENT_DIR)) == 0)) continue;



More information about the Pkg-sssd-devel mailing list