de993b
diff -up libpwquality-1.2.3/src/settings.c.settings libpwquality-1.2.3/src/settings.c
de993b
--- libpwquality-1.2.3/src/settings.c.settings	2013-09-12 12:48:34.000000000 +0200
de993b
+++ libpwquality-1.2.3/src/settings.c	2017-11-15 11:31:52.860620974 +0100
de993b
@@ -42,6 +42,7 @@ pwquality_free_settings(pwquality_settin
de993b
 {
de993b
         if (pwq) {
de993b
                 free(pwq->dict_path);
de993b
+                free(pwq->bad_words);
de993b
                 free(pwq);
de993b
         }
de993b
 }
de993b
@@ -150,9 +151,11 @@ pwquality_read_config(pwquality_settings
de993b
                 if (*ptr == '\0')
de993b
                         continue;
de993b
 
de993b
+                eq = 0;
de993b
                 name = ptr;
de993b
                 while (*ptr != '\0') {
de993b
-                        if (isspace(*ptr)) {
de993b
+                        if (isspace(*ptr) || *ptr == '=') {
de993b
+                                eq = *ptr == '=';
de993b
                                 *ptr = '\0';
de993b
                                 ++ptr;
de993b
                                 break;
de993b
@@ -160,7 +163,6 @@ pwquality_read_config(pwquality_settings
de993b
                         ++ptr;
de993b
                 }
de993b
 
de993b
-                eq = 0;
de993b
                 while (*ptr != '\0') {
de993b
                         if (*ptr != '=' || eq) {
de993b
                                 if (!isspace(*ptr)) {
de993b
@@ -322,6 +324,9 @@ pwquality_get_int_value(pwquality_settin
de993b
         case PWQ_SETTING_MAX_CLASS_REPEAT:
de993b
                 *value = pwq->max_class_repeat;
de993b
                 break;
de993b
+        case PWQ_SETTING_MAX_SEQUENCE:
de993b
+                *value = pwq->max_sequence;
de993b
+                break;
de993b
         case PWQ_SETTING_GECOS_CHECK:
de993b
                 *value = pwq->gecos_check;
de993b
                 break;