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