summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNathan Neulinger <nneul@neulinger.org>2023-03-15 10:04:57 -0500
committerGitHub <noreply@github.com>2023-03-15 10:04:57 -0500
commit89287967715403b5bc4ef59b1ebbc4c30699af21 (patch)
tree69dee694210451e5d2edc58e61571067f223fd34 /src
parent31fd22797ed64d9077c9b07d7a636337b6984ecc (diff)
parentb0f3383844bfb9ec091d99765056afa64074753a (diff)
downloadcracklib-89287967715403b5bc4ef59b1ebbc4c30699af21.tar.gz
Merge branch 'master' into weblate-cracklib-master
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am2
-rw-r--r--src/NEWS6
-rw-r--r--src/configure.ac13
-rw-r--r--src/doc/FascistCheck.389
-rw-r--r--src/doc/Makefile.am6
-rw-r--r--src/doc/cracklib-check.825
-rw-r--r--src/doc/cracklib-format.8123
-rw-r--r--src/doc/cracklib-update.843
-rw-r--r--src/lib/packer.h10
-rw-r--r--src/lib/packlib.c37
-rw-r--r--src/lib/rules.c5
-rw-r--r--src/lib/stringlib.c2
-rw-r--r--src/po/as.po2
-rw-r--r--src/po/be.po2
-rw-r--r--src/po/bn_IN.po2
-rw-r--r--src/po/ca.po2
-rw-r--r--src/po/cracklib.pot4
-rw-r--r--src/po/cs.po2
-rw-r--r--src/po/da.po2
-rw-r--r--src/po/de.po2
-rw-r--r--src/po/el.po2
-rw-r--r--src/po/es.po2
-rw-r--r--src/po/eu.po2
-rw-r--r--src/po/fi.po2
-rw-r--r--src/po/fr.po2
-rw-r--r--src/po/gu.po2
-rw-r--r--src/po/he.po2
-rw-r--r--src/po/hi.po2
-rw-r--r--src/po/hu.po2
-rw-r--r--src/po/id.po2
-rw-r--r--src/po/it.po2
-rw-r--r--src/po/ja.po2
-rw-r--r--src/po/kn.po2
-rw-r--r--src/po/ko.po2
-rw-r--r--src/po/lt.po2
-rw-r--r--src/po/ml.po2
-rw-r--r--src/po/mr.po2
-rw-r--r--src/po/nb.po2
-rw-r--r--src/po/nl.po2
-rw-r--r--src/po/or.po2
-rw-r--r--src/po/pa.po2
-rw-r--r--src/po/pl.po2
-rw-r--r--src/po/pt.po2
-rw-r--r--src/po/pt_BR.po2
-rw-r--r--src/po/ru.po2
-rw-r--r--src/po/sk.po2
-rw-r--r--src/po/sq.po2
-rw-r--r--src/po/sv.po2
-rw-r--r--src/po/ta.po2
-rw-r--r--src/po/te.po2
-rw-r--r--src/po/tr.po2
-rw-r--r--src/po/uk.po2
-rw-r--r--src/po/zh_CN.po2
-rw-r--r--src/po/zh_TW.po2
-rw-r--r--src/python/_cracklib.c62
-rw-r--r--src/util/Makefile.am5
-rw-r--r--src/util/check.c1
-rw-r--r--src/util/cracklib-update46
-rw-r--r--src/util/packer.c20
-rw-r--r--src/util/testnum.c2
-rw-r--r--src/util/teststr.c2
61 files changed, 454 insertions, 131 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 97c82dd..e24c6a0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -7,7 +7,7 @@ EXTRA_DIST = \
README-LICENSE \
test-data
-DIST_TARGETS=dist-gzip dist-bzip2 dist-zip
+AUTOMAKE_OPTIONS=dist-bzip2 dist-zip
all-local:
@echo
diff --git a/src/NEWS b/src/NEWS
index adefbfe..94abfc0 100644
--- a/src/NEWS
+++ b/src/NEWS
@@ -1,4 +1,8 @@
-v2.9.9-dev
+v2.9.10 Fix missing files in dist tarball, other automake fixes (Leandro Nini)
+ Fix error handling during build of dictionary (yixiangzhike)
+ Fix to localization support (A. Wilcox, nekopsykose)
+ Fix to test utilities (Alexander Kanavin)
+v2.9.9 Merge of man pages/other fixes from Fedora (Tomasz Kłoczko)
v2.9.8 Correct parameter types to Debug() calls
rules: Drop using register keyword
remove needless use of %defattr per fedora project
diff --git a/src/configure.ac b/src/configure.ac
index 0841ee7..761c276 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT([cracklib], [2.9.9-dev], [cracklib-devel@lists.sourceforge.net])
+AC_INIT([cracklib], [2.9.10-dev], [cracklib-devel@lists.sourceforge.net])
AM_INIT_AUTOMAKE
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
@@ -8,7 +8,7 @@ dnl Set of available languages.
ALL_LINGUAS="as be bn_IN ca cs da de el es eu fi fr gu he hi hu id it ja kk kn ko lt ml mr nb nl or pa pl pt pt_BR ru sk sl sq sv ta te tr uk zh_CN zh_TW"
dnl Checks for programs.
-AC_PROG_LIBTOOL
+LT_INIT
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
@@ -61,7 +61,7 @@ AM_GNU_GETTEXT([external])
dnl Control default dictname
AC_MSG_CHECKING(default dict filename)
AC_ARG_WITH(default-dict,
-AC_HELP_STRING(--with-default-dict,[Specify default dict filename]),
+AS_HELP_STRING([--with-default-dict],[Specify default dict filename]),
default_cracklib_dict=$withval,
default_cracklib_dict='$(pkgdatadir)/pw_dict')
AC_SUBST(DEFAULT_CRACKLIB_DICT, $default_cracklib_dict)
@@ -69,7 +69,7 @@ AC_MSG_RESULT($default_cracklib_dict)
dnl Check for python, unless we were told to not try to build a python module
AC_ARG_WITH(python,
-AC_HELP_STRING(--without-python,[Build a python module @<:@default=auto@:>@]),
+AS_HELP_STRING([--without-python],[Build a python module @<:@default=auto@:>@]),
build_python=$withval,build_python=auto)
if test "$build_python" != no ; then
AM_PATH_PYTHON(,,
@@ -97,7 +97,8 @@ AM_CONDITIONAL(BUILD_PYTHON,[test "$build_python" = "yes"])
dnl Handle local dict compiling properly
AC_SUBST(CROSS_COMPILING, $cross_compiling)
-AC_OUTPUT(util/Makefile lib/Makefile doc/Makefile python/Makefile Makefile \
+AC_CONFIG_FILES([util/Makefile lib/Makefile doc/Makefile python/Makefile Makefile \
python/setup.py \
- po/Makefile.in m4/Makefile dicts/Makefile cracklib.spec)
+ po/Makefile.in m4/Makefile dicts/Makefile cracklib.spec])
+AC_OUTPUT
diff --git a/src/doc/FascistCheck.3 b/src/doc/FascistCheck.3
new file mode 100644
index 0000000..08fa234
--- /dev/null
+++ b/src/doc/FascistCheck.3
@@ -0,0 +1,89 @@
+.\" source:
+.\" /var/cvs/projects/debian/cracklib/debian/dpkg.src/cracklib2-dev.FascistCheck.3.in,v
+.\"
+.\" revision:
+.\" @(#) cracklib2-dev.FascistCheck.3.in,v 1.6 1999/03/29 15:30:21 jplejacq Exp
+.\"
+.\" copyright:
+.\" Copyright (C) 1998, 1999 Jean Pierre LeJacq <jplejacq@quoininc.com>
+.\"
+.\" Distributed under the GNU GENERAL PUBLIC LICENSE.
+.\"
+.TH FascistCheck 3 "Wed, 3 Oct 2001 01:37:09 +0100" "2.7-8.5" "Debian GNU/Linux manual"
+.SH NAME
+FascistCheck \- a pro-active password checker library
+.SH SYNOPSIS
+.B #include <crack.h>
+.sp
+.B "static char const CRACKLIB_DICTPATH[] = \ .\|.\|.;"
+.sp
+.B "extern char const *"
+.br
+.B "FascistCheck(char const passwd[], char const dictpath[]);"
+.SH DESCRIPTION
+cracklib is a library containing the
+.B FascistCheck
+C function which may be used in a "passwd" like program. The idea is
+simple: try to prevent users from choosing passwords that could be
+guessed by "crack" by filtering them out, at source. cracklib is an
+offshoot of the the version 5 of the "crack" software and contains a
+considerable number of ideas nicked from the new software.
+
+The first formal argument
+.B password
+is the potential password. The second formal argument
+.B dictpath
+is the full path name + filename prefix of the cracklib
+dictionary database.
+.B FascistCheck
+returns
+the NULL pointer for a good password, or a pointer to a diagnostic
+string if it is a weak password.
+
+The database is in a binary format generated by the utilities
+.BR crack_mkdict (8)
+and
+.BR crack_packer (8).
+On a Debian system the database is located in the directory defined by
+the static constant
+.B CRACKLIB_DICTPATH
+and is set to /var/cache/cracklib/cracklib_dict. None of the subroutines in the
+cracklib libraries have this location hard-coded into their
+implementations. It is generated daily with the program
+/etc/cron.daily/cracklib.
+.SH FILES
+.TP
+.I /var/cache/cracklib/cracklib_dict.[hwm|pwd|pwi]
+cracklib dictionary database files used by utilities.
+.TP
+.I /etc/cron.daily/cracklib
+cracklib daily cron program to rebuild the cracklib dictionary database.
+.TP
+.I /etc/cracklib/cracklib.conf
+cracklib configuration file used by the cracklib daily cron program to
+rebuild the cracklib dictionary database.
+.TP
+.I /usr/sbin/crack_mkdict
+cracklib shell script to create initial list of words for dictionary
+database.
+.TP
+.I /usr/share/doc/cracklib2-dev/examples
+Example
+.BR cc (1)
+source files that show how
+.B FascistCheck
+is used.
+.SH SEE ALSO
+.BR crack_teststr (8),
+.BR crack_mkdict (8),
+.BR update\-cracklib (8)
+.br
+/usr/share/doc/cracklib2-dev/examples
+.br
+/usr/share/doc/cracklib2/cracklib2.html
+.br
+/usr/share/doc/cracklib2-dev/cracklib2-dev.html
+.SH AUTHOR
+.B cracklib2
+is written by Alec Muffett <alecm@crypto.dircon.co.uk>. Manual added
+by Jean Pierre LeJacq <jplejacq@quoininc.com>.
diff --git a/src/doc/Makefile.am b/src/doc/Makefile.am
index 30bf3eb..e597b38 100644
--- a/src/doc/Makefile.am
+++ b/src/doc/Makefile.am
@@ -1 +1,7 @@
dist_pkgdata_DATA = cracklib.magic
+
+dist_man_MANS = \
+ cracklib-check.8 \
+ cracklib-format.8 \
+ cracklib-update.8 \
+ FascistCheck.3 \ No newline at end of file
diff --git a/src/doc/cracklib-check.8 b/src/doc/cracklib-check.8
new file mode 100644
index 0000000..e953a3b
--- /dev/null
+++ b/src/doc/cracklib-check.8
@@ -0,0 +1,25 @@
+.TH cracklib\-check 8 "Sat Jun 21 22:44:33 CEST 2008" "Jan Dittberner"
+.SH NAME
+cracklib\-check \- Check passwords using libcrack2
+.SH SYNOPSIS
+.B cracklib\-check
+.br
+
+.SH DESCRIPTION
+.B cracklib\-check
+takes a list of passwords from stdin and checks them via libcrack2's
+.BR FascistCheck (3)
+sub routine.
+
+.SH RESULT
+.B cracklib\-check
+prints each checked password and the corresponding result of
+.BR FascistCheck (3)
+to stdout. The password and the result are separated by a colon.
+
+.SH SEE ALSO
+.BR FascistCheck (3)
+
+.SH AUTHOR
+This man page was written by Jan Dittberner <jandd@debian.org> for
+the Debian GNU/Linux System (but may be used by others).
diff --git a/src/doc/cracklib-format.8 b/src/doc/cracklib-format.8
new file mode 100644
index 0000000..4f38efb
--- /dev/null
+++ b/src/doc/cracklib-format.8
@@ -0,0 +1,123 @@
+.\" source:
+.\" /var/cvs/projects/debian/cracklib/debian/dpkg.src/cracklib-runtime.crack_mkdict.8.in,v
+.\"
+.\" revision:
+.\" @(#) cracklib-runtime.crack_mkdict.8.in,v 1.7 1999/04/02 14:50:43 jplejacq Exp
+.\"
+.\" copyright:
+.\" Copyright (C) 1998, 1999 Jean Pierre LeJacq <jplejacq@quoininc.com>
+.\"
+.\" Distributed under the GNU GENERAL PUBLIC LICENSE.
+.\"
+.TH cracklib\-format 8 "Sat Jun 21 22:43:12 CEST 2008" "2.7-8.5" "Debian GNU/Linux manual"
+.SH NAME
+cracklib\-format, cracklib\-packer, cracklib\-unpacker \- cracklib dictionary utilities
+.SH SYNOPSIS
+.B cracklib\-format
+.IR file
+.IR ...
+
+.B cracklib\-packer
+.IR cracklib_dictpath
+
+.B cracklib\-unpacker
+.IR cracklib_dictpath
+.SH DESCRIPTION
+.B cracklib\-format
+takes a list of text files each containing a list of words, one per line, It
+lowercases all words, removes control characters, and sorts the lists. It
+outputs the cleaned up list to standard output. The text files may be
+optionally compressed with
+.BR gzip (1).
+
+If you supply massive amounts of text to
+.B cracklib\-format
+you must have enough free space available for use by the
+.BR sort (1)
+command. If you do not have 20Mb free in /var/tmp (or whatever
+temporary area your
+.BR sort (1)
+command uses), have a look at the
+.B /usr/sbin/cracklib\-format
+program which is a
+.BR sh (1)
+program. You can usually tweak the
+.BR sort (1)
+command to use any large area of disk you desire, by use of the
+.B \-T
+option.
+.B cracklib\-format
+has a hook for this.
+
+.B cracklib\-packer
+reads from standard input a list of sorted and cleaned words and
+creates a database in the directory and prefix given by the command
+line argument
+.B cracklib_dictpath.
+Three files are created with the suffixes of .hwm, .pwd, and .pwi.
+These three files are in the format that the
+.BR FascistCheck (3)
+subroutine,
+.BR cracklib\-unpacker (8),
+and
+.BR cracklib\-check (8),
+utilities understand. The number of words read and written are printed on
+.BR stdout (3).
+
+.B cracklib\-unpacker
+reads from the database in the directory and prefix given by the command
+line argument
+.B cracklib_dictpath
+and outputs on standard output the list of words that make up the
+database.
+
+The database is in a binary format generated by the utilities
+.BR cracklib\-format (8)
+and
+.BR cracklib\-packer (8).
+On a Debian system the database is located in the directory
+/var/cache/cracklib/cracklib_dict and is generated daily with the program
+/etc/cron.daily/cracklib. The location is also defined in the
+header file
+.B crack.h
+using the constant
+.B CRACKLIB_DICTPATH
+though none of the subroutines in the cracklib libraries have this
+location hardcoded into their implementations.
+
+.SH FILES
+.TP
+.I /var/cache/cracklib/cracklib_dict.[hwm|pwd|pwi]
+cracklib dictionary database files used by utilities.
+.TP
+.I /etc/cron.daily/cracklib
+cracklib daily cron program to rebuild the cracklib dictionary database.
+.TP
+.I /etc/cracklib/cracklib.conf
+cracklib configuration file used by the cracklib daily cron program to
+rebuild the cracklib dictionary database.
+.TP
+.I /usr/include/crack.h
+cracklib header file defining the subroutine
+.BR FascistCheck(3)
+and the constant
+.B CRACKLIB_DICTPATH
+used to compile in the location of the cracklib dictionary database for
+these utilities.
+.TP
+.I /usr/sbin/cracklib\-format
+cracklib shell script to create initial list of words for dictionary
+database.
+.SH SEE ALSO
+.BR FascistCheck (3),
+.BR cracklib\-check (8),
+.BR update\-cracklib (8),
+.BR create\-cracklib\-dict (8)
+.br
+/usr/share/doc/libcrack2/libcrack2.html
+.br
+/usr/share/doc/cracklib-runtime/cracklib-runtime.html
+.SH AUTHOR
+.B cracklib2
+is written by Alec Muffett <alecm@crypto.dircon.co.uk>. Manual added
+by Jean Pierre LeJacq <jplejacq@quoininc.com>.
diff --git a/src/doc/cracklib-update.8 b/src/doc/cracklib-update.8
new file mode 100644
index 0000000..bad3c86
--- /dev/null
+++ b/src/doc/cracklib-update.8
@@ -0,0 +1,43 @@
+.TH update\-cracklib 8 "June 09, 2003" "Martin Pitt"
+.SH NAME
+update\-cracklib \- Regenerate cracklib dictionary
+.SH SYNOPSIS
+.B update\-cracklib
+.br
+
+.SH DESCRIPTION
+.B update\-cracklib
+builds a compressed and accumulated version of wordlists stored in the
+directories given in cracklib's configuration file
+/etc/cracklib/cracklib.conf. Programs using cracklib2 need this
+database to be of any use.
+.PP
+By default this script is called by cron every day.
+
+.SH RESULT
+.B
+update\-cracklib
+prints out two numbers: the number of words read from the ASCII
+dictionaries and the number of words eventually written into the
+cracklib database; if no error occurred, these should be equal.
+.PP
+0 is returned on success, otherwise an error message is printed to
+standard error and \-1 is returned.
+
+.SH FILES
+.TP
+.B /etc/cracklib/cracklib.conf
+shell script that sets
+.B
+cracklib_dictpath_src
+which must be a space separated list of source dictionary files.
+
+.SH SEE ALSO
+.BR cracklib (3),
+.BR crack_mkdict (8)
+
+.SH AUTHOR
+This program and manual page was written by Martin Pitt
+<martin@piware.de> for the Debian GNU/Linux System (but may be used by
+others).
+
diff --git a/src/lib/packer.h b/src/lib/packer.h
index fb831cb..022de5a 100644
--- a/src/lib/packer.h
+++ b/src/lib/packer.h
@@ -30,17 +30,7 @@
#define _(String) (String)
#endif
-#if defined(HAVE_INTTYPES_H)
-#include <inttypes.h>
-#else
-#if defined(HAVE_STDINT_H)
#include <stdint.h>
-#else
-typedef unsigned int uint32_t;
-typedef unsigned short uint16_t;
-#endif
-#endif
-
struct pi_header
{
diff --git a/src/lib/packlib.c b/src/lib/packlib.c
index 8acb7be..9396e1d 100644
--- a/src/lib/packlib.c
+++ b/src/lib/packlib.c
@@ -18,8 +18,6 @@
#endif
#include "packer.h"
-static const char vers_id[] = "packlib.c : v2.3p2 Alec Muffett 18 May 1993";
-
#define DEBUG 0
/* Structures for processing "broken" 64bit dictionary files */
@@ -579,12 +577,11 @@ fprintf(stderr, "look for (%s)\n", string);
fprintf(stderr, "---- %lu, %lu ----\n", lwm, hwm);
#endif
- middle = lwm + ((hwm - lwm + 1) / 2);
-
for (;;)
{
int cmp;
+ middle = lwm + ((hwm - lwm + 1) / 2);
#if DEBUG
fprintf(stderr, "lwm = %lu, middle = %lu, hwm = %lu\n", lwm, middle, hwm);
@@ -611,24 +608,28 @@ fprintf(stderr, "look for (%s)\n", string);
return(middle);
}
- if (middle == hwm)
- {
-#if DEBUG
- fprintf(stderr, "at terminal subdivision, stopping search\n");
-#endif
- break;
- }
-
if (cmp < 0)
{
- hwm = middle;
- middle = lwm + ((hwm - lwm ) / 2);
- }
+ if (middle == lwm)
+ {
+#if DEBUG
+ fprintf(stderr, "at terminal subdivision from right, stopping search\n");
+#endif
+ break;
+ }
+ hwm = middle - 1;
+ }
else if (cmp > 0)
{
- lwm = middle;
- middle = lwm + ((hwm - lwm + 1) / 2);
- }
+ if (middle == hwm)
+ {
+#if DEBUG
+ fprintf(stderr, "at terminal subdivision from left, stopping search\n");
+#endif
+ break;
+ }
+ lwm = middle + 1;
+ }
}
return (PW_WORDS(pwp));
diff --git a/src/lib/rules.c b/src/lib/rules.c
index 4a34f91..094a36b 100644
--- a/src/lib/rules.c
+++ b/src/lib/rules.c
@@ -4,8 +4,6 @@
* or its effect upon hardware or computer systems.
*/
-static const char vers_id[] = "rules.c : v5.0p3 Alec Muffett 20 May 1993";
-
#include "config.h"
#include <string.h>
#ifdef HAVE_INTTYPES_H
@@ -764,6 +762,8 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */
}
}
}
+ break;
+
case RULE_MLAST:
if (!ptr[1] || (ptr[1] == RULE_CLASS && !ptr[2]))
{
@@ -799,6 +799,7 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */
}
}
}
+ break;
default:
Debug(1, "Mangle: unknown command %c in %s\n", ptr, control);
diff --git a/src/lib/stringlib.c b/src/lib/stringlib.c
index 89c2778..1b52e03 100644
--- a/src/lib/stringlib.c
+++ b/src/lib/stringlib.c
@@ -12,8 +12,6 @@
#endif
#include "packer.h"
-static const char vers_id[] = "stringlib.c : v2.3p2 Alec Muffett 18 May 1993";
-
char
Chop(string)
register char *string;
diff --git a/src/po/as.po b/src/po/as.po
index 281e771..4311c7d 100644
--- a/src/po/as.po
+++ b/src/po/as.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-06-18 01:02+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Assamese <>\n"
diff --git a/src/po/be.po b/src/po/be.po
index 8edba64..d992c4b 100644
--- a/src/po/be.po
+++ b/src/po/be.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2018-06-04 07:22+0000\n"
"Last-Translator: Viktar Siarheichyk <veq@fedoraproject.org>\n"
"Language-Team: Belarusian\n"
diff --git a/src/po/bn_IN.po b/src/po/bn_IN.po
index 52e4e41..81a71f7 100644
--- a/src/po/bn_IN.po
+++ b/src/po/bn_IN.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-06-18 01:02+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Bengali INDIA <anubad@lists.ankur.org.in>\n"
diff --git a/src/po/ca.po b/src/po/ca.po
index 000331b..a923db7 100644
--- a/src/po/ca.po
+++ b/src/po/ca.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-10-08 03:48+0000\n"
"Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>\n"
"Language-Team: Catalan\n"
diff --git a/src/po/cracklib.pot b/src/po/cracklib.pot
index d65bfd2..59376cc 100644
--- a/src/po/cracklib.pot
+++ b/src/po/cracklib.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: cracklib 2.9.9-dev\n"
+"Project-Id-Version: cracklib 2.9.10-dev\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/src/po/cs.po b/src/po/cs.po
index a27a9be..403a805 100644
--- a/src/po/cs.po
+++ b/src/po/cs.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-08-31 01:14+0000\n"
"Last-Translator: Marek Suchánek <m.suchanek.2@gmail.com>\n"
"Language-Team: czech <suse@suse.cz>\n"
diff --git a/src/po/da.po b/src/po/da.po
index 0a3104d..a9dc4a0 100644
--- a/src/po/da.po
+++ b/src/po/da.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2017-10-06 02:39+0000\n"
"Last-Translator: scootergrisen <scootergrisen@gmail.com>\n"
"Language-Team: Dansk <da@li.org>\n"
diff --git a/src/po/de.po b/src/po/de.po
index bcb5cf8..eb5303a 100644
--- a/src/po/de.po
+++ b/src/po/de.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2020-02-01 16:16+0000\n"
"Last-Translator: Thomas Eichhorn <tomislav@posteo.de>\n"
"Language-Team: German <https://translate.fedoraproject.org/projects/cracklib/"
diff --git a/src/po/el.po b/src/po/el.po
index 36433ed..5cf5985 100644
--- a/src/po/el.po
+++ b/src/po/el.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-06-18 01:02+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Hellenic-Ελληνικά-Greek <hstg@billg.gr>\n"
diff --git a/src/po/es.po b/src/po/es.po
index 6678a9d..72b75b6 100644
--- a/src/po/es.po
+++ b/src/po/es.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2018-08-16 12:44+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Novell Language <language@novell.com>\n"
diff --git a/src/po/eu.po b/src/po/eu.po
index 03964de..8372582 100644
--- a/src/po/eu.po
+++ b/src/po/eu.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2017-04-11 05:46+0000\n"
"Last-Translator: Mikel Olasagasti Uranga <mikel@olasagasti.info>\n"
"Language-Team: Basque\n"
diff --git a/src/po/fi.po b/src/po/fi.po
index 968bdb3..ef7a4ab 100644
--- a/src/po/fi.po
+++ b/src/po/fi.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2020-03-19 09:38+0000\n"
"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
"Language-Team: Finnish <https://translate.fedoraproject.org/projects/"
diff --git a/src/po/fr.po b/src/po/fr.po
index 9ba3971..df21807 100644
--- a/src/po/fr.po
+++ b/src/po/fr.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2020-02-05 04:16+0000\n"
"Last-Translator: Julien Humbert <julroy67@gmail.com>\n"
"Language-Team: French <https://translate.stg.fedoraproject.org/projects/"
diff --git a/src/po/gu.po b/src/po/gu.po
index 28274c3..4c159f5 100644
--- a/src/po/gu.po
+++ b/src/po/gu.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-06-18 01:02+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Gujarati <fedora-trans-gu@redhat.com>\n"
diff --git a/src/po/he.po b/src/po/he.po
index 2462dd2..fc34186 100644
--- a/src/po/he.po
+++ b/src/po/he.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2020-02-26 06:38+0000\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <https://translate.fedoraproject.org/projects/cracklib/"
diff --git a/src/po/hi.po b/src/po/hi.po
index f123bed..98df399 100644
--- a/src/po/hi.po
+++ b/src/po/hi.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2020-07-28 15:28+0000\n"
"Last-Translator: Aniket Kumar <aniket.jnv@yahoo.com>\n"
"Language-Team: Hindi <https://translate.fedoraproject.org/projects/cracklib/"
diff --git a/src/po/hu.po b/src/po/hu.po
index 06c77c4..3b98036 100644
--- a/src/po/hu.po
+++ b/src/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-09-10 06:40+0000\n"
"Last-Translator: Meskó Balázs <meskobalazs@gmail.com>\n"
"Language-Team: hungarian\n"
diff --git a/src/po/id.po b/src/po/id.po
index 0763edf..0e078f5 100644
--- a/src/po/id.po
+++ b/src/po/id.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2017-07-24 12:45+0000\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: Indonesian\n"
diff --git a/src/po/it.po b/src/po/it.po
index 6c44fae..773ca8e 100644
--- a/src/po/it.po
+++ b/src/po/it.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2020-02-12 11:16+0000\n"
"Last-Translator: Alessio <alciregi@posteo.net>\n"
"Language-Team: Italian <https://translate.fedoraproject.org/projects/"
diff --git a/src/po/ja.po b/src/po/ja.po
index 19e194f..a0fcf79 100644
--- a/src/po/ja.po
+++ b/src/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2018-08-16 12:48+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Novell Language <language@novell.com>\n"
diff --git a/src/po/kn.po b/src/po/kn.po
index f37f05d..7e35306 100644
--- a/src/po/kn.po
+++ b/src/po/kn.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-06-18 01:02+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Kannada <en@li.org>\n"
diff --git a/src/po/ko.po b/src/po/ko.po
index 5823482..377d843 100644
--- a/src/po/ko.po
+++ b/src/po/ko.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2021-03-07 09:01+0000\n"
"Last-Translator: simmon <simmon@nplob.com>\n"
"Language-Team: Korean <https://translate.fedoraproject.org/projects/cracklib/"
diff --git a/src/po/lt.po b/src/po/lt.po
index e3acffc..0bf73a4 100644
--- a/src/po/lt.po
+++ b/src/po/lt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-06-18 01:02+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: lt\n"
diff --git a/src/po/ml.po b/src/po/ml.po
index b66cacc..15a5242 100644
--- a/src/po/ml.po
+++ b/src/po/ml.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-06-18 01:02+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Malayalam\n"
diff --git a/src/po/mr.po b/src/po/mr.po
index 1806f0c..7bfd08e 100644
--- a/src/po/mr.po
+++ b/src/po/mr.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-06-18 01:02+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Marathi <fedora-trans-mr@redhat.com>\n"
diff --git a/src/po/nb.po b/src/po/nb.po
index 1adb503..200123d 100644
--- a/src/po/nb.po
+++ b/src/po/nb.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2020-04-30 08:40+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: Norwegian Bokmål <https://translate.fedoraproject.org/"
diff --git a/src/po/nl.po b/src/po/nl.po
index 7e01c8c..27a53cb 100644
--- a/src/po/nl.po
+++ b/src/po/nl.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-09-01 06:35+0000\n"
"Last-Translator: Geert Warrink <geert.warrink@onsnet.nu>\n"
"Language-Team: Dutch <kde-i18n-nl@kde.org>\n"
diff --git a/src/po/or.po b/src/po/or.po
index 084fe2d..1a70a58 100644
--- a/src/po/or.po
+++ b/src/po/or.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2020-04-13 14:40+0000\n"
"Last-Translator: Ankit Behera <proneon267@gmail.com>\n"
"Language-Team: Odia <https://translate.fedoraproject.org/projects/cracklib/"
diff --git a/src/po/pa.po b/src/po/pa.po
index 703818c..a181e58 100644
--- a/src/po/pa.po
+++ b/src/po/pa.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2017-08-18 07:15+0000\n"
"Last-Translator: A S Alam <aalam@fedoraproject.org>\n"
"Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n"
diff --git a/src/po/pl.po b/src/po/pl.po
index f58f7f7..1e69c72 100644
--- a/src/po/pl.po
+++ b/src/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2019-02-19 05:24+0000\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <fedora-trans-pl@redhat.com>\n"
diff --git a/src/po/pt.po b/src/po/pt.po
index b7792ba..8e529b4 100644
--- a/src/po/pt.po
+++ b/src/po/pt.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-09-05 10:12+0000\n"
"Last-Translator: Ricardo Pinto <ricardo.bigote@gmail.com>\n"
"Language-Team: portuguese\n"
diff --git a/src/po/pt_BR.po b/src/po/pt_BR.po
index 318a322..2ca848b 100644
--- a/src/po/pt_BR.po
+++ b/src/po/pt_BR.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2018-08-16 12:44+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Novell Language <language@novell.com>\n"
diff --git a/src/po/ru.po b/src/po/ru.po
index 57d9be8..e4a5757 100644
--- a/src/po/ru.po
+++ b/src/po/ru.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2018-08-16 12:43+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: \n"
diff --git a/src/po/sk.po b/src/po/sk.po
index 00b4fa5..9367bd1 100644
--- a/src/po/sk.po
+++ b/src/po/sk.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-10-11 06:53+0000\n"
"Last-Translator: feonsu <feonsu@gmail.com>\n"
"Language-Team: Slovak <sk-i18n@linux.sk>\n"
diff --git a/src/po/sq.po b/src/po/sq.po
index a3fbebb..14dbb6d 100644
--- a/src/po/sq.po
+++ b/src/po/sq.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2017-04-17 10:20+0000\n"
"Last-Translator: Anxhela Hyseni <anxhela.hyseni1996@gmail.com>\n"
"Language-Team: Albanian\n"
diff --git a/src/po/sv.po b/src/po/sv.po
index a285be3..1256cf3 100644
--- a/src/po/sv.po
+++ b/src/po/sv.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2020-12-16 10:35+0000\n"
"Last-Translator: Luna Jernberg <bittin@reimu.nl>\n"
"Language-Team: Swedish <https://translate.fedoraproject.org/projects/"
diff --git a/src/po/ta.po b/src/po/ta.po
index bd10fcf..83e9c1f 100644
--- a/src/po/ta.po
+++ b/src/po/ta.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-06-18 01:03+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Tamil <fedora-trans-ta@redhat.com>\n"
diff --git a/src/po/te.po b/src/po/te.po
index 3110572..8a99523 100644
--- a/src/po/te.po
+++ b/src/po/te.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2016-06-18 01:03+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Telugu <en@li.org>\n"
diff --git a/src/po/tr.po b/src/po/tr.po
index 8c538aa..5ab045f 100644
--- a/src/po/tr.po
+++ b/src/po/tr.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2020-02-01 16:16+0000\n"
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
"Language-Team: Turkish <https://translate.fedoraproject.org/projects/"
diff --git a/src/po/uk.po b/src/po/uk.po
index 048ac8c..43938f8 100644
--- a/src/po/uk.po
+++ b/src/po/uk.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2020-02-08 20:16+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/"
diff --git a/src/po/zh_CN.po b/src/po/zh_CN.po
index 9bc3259..bf6032f 100644
--- a/src/po/zh_CN.po
+++ b/src/po/zh_CN.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2018-08-21 09:51+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Wei Liu\n"
diff --git a/src/po/zh_TW.po b/src/po/zh_TW.po
index c3c699d..cf29ddd 100644
--- a/src/po/zh_TW.po
+++ b/src/po/zh_TW.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cracklib 2.9.6\n"
"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-09-02 08:39-0500\n"
+"POT-Creation-Date: 2023-03-04 10:08-0600\n"
"PO-Revision-Date: 2018-08-16 12:45+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Novell Language <language@novell.com>\n"
diff --git a/src/python/_cracklib.c b/src/python/_cracklib.c
index a19e9bf..d81e615 100644
--- a/src/python/_cracklib.c
+++ b/src/python/_cracklib.c
@@ -23,6 +23,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "config.h"
#ifdef PYTHON_H
#include PYTHON_H
#else
@@ -72,9 +73,8 @@ static char _cracklib_FascistCheck_doc [] =
static PyObject *
_cracklib_FascistCheck(PyObject *self, PyObject *args, PyObject *kwargs)
{
- char *candidate, *dict;
- char *defaultdict = NULL;
- const char *result;
+ char *candidate;
+ const char *result, *dict;
struct stat st;
char *keywords[] = {"pw", "dictpath", NULL};
char *dictfile;
@@ -103,44 +103,35 @@ _cracklib_FascistCheck(PyObject *self, PyObject *args, PyObject *kwargs)
"second argument was not an absolute path!");
return NULL;
}
- dictfile = malloc(strlen(dict) + sizeof(DICT_SUFFIX));
- if (dictfile == NULL)
- {
- PyErr_SetFromErrnoWithFilename(PyExc_OSError, dict);
- return NULL;
- }
- sprintf(dictfile, "%s" DICT_SUFFIX, dict);
- if (lstat(dictfile, &st) == -1)
- {
- PyErr_SetFromErrnoWithFilename(PyExc_OSError, dictfile);
- free(dictfile);
- return NULL;
- }
- free(dictfile);
} else
{
- defaultdict = strdup(GetDefaultCracklibDict());
- if (errno == ENOMEM) {
- PyErr_SetFromErrno(PyExc_OSError);
- return NULL;
- }
- dictfile = malloc(strlen(defaultdict) + sizeof(DICT_SUFFIX));
- if (dictfile == NULL)
- {
- PyErr_SetFromErrnoWithFilename(PyExc_OSError, defaultdict);
- free(defaultdict);
- return NULL;
- }
- sprintf(dictfile, "%s" DICT_SUFFIX, defaultdict);
+ /* No need to strdup() anything as this is a constant value */
+ dict = GetDefaultCracklibDict();
+ }
+
+ dictfile = malloc(strlen(dict) + sizeof(DICT_SUFFIX) + 3);
+ if (dictfile == NULL)
+ {
+ PyErr_SetFromErrnoWithFilename(PyExc_OSError, dict);
+ return NULL;
+ }
+ sprintf(dictfile, "%s" DICT_SUFFIX, dict);
+ if (lstat(dictfile, &st) == -1)
+ {
+#ifdef HAVE_ZLIB_H
+ sprintf(dictfile, "%s" DICT_SUFFIX ".gz", dict);
if (lstat(dictfile, &st) == -1)
{
+ sprintf(dictfile, "%s" DICT_SUFFIX, dict);
+#endif
PyErr_SetFromErrnoWithFilename(PyExc_OSError, dictfile);
- free(defaultdict);
free(dictfile);
return NULL;
+#ifdef HAVE_ZLIB_H
}
- free(dictfile);
+#endif
}
+ free(dictfile);
setlocale(LC_ALL, "");
#ifdef ENABLE_NLS
@@ -148,14 +139,9 @@ _cracklib_FascistCheck(PyObject *self, PyObject *args, PyObject *kwargs)
#endif
LOCK();
- result = FascistCheck(candidate, dict ? dict : defaultdict);
+ result = FascistCheck(candidate, dict);
UNLOCK();
- if (defaultdict != NULL)
- {
- free(defaultdict);
- }
-
if (result != NULL)
{
PyErr_SetString(PyExc_ValueError, result);
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index 4649416..657724b 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -1,4 +1,5 @@
sbin_PROGRAMS = cracklib-packer cracklib-unpacker cracklib-check
+sbin_SCRIPTS = cracklib-update
check_PROGRAMS = testlib testnum teststr
@@ -6,7 +7,7 @@ dist_sbin_SCRIPTS = create-cracklib-dict cracklib-format
LDADD = ../lib/libcrack.la
-AM_CPPFLAGS = -I. -I.. -I$(top_srcdir)/lib '-DDEFAULT_CRACKLIB_DICT="$(DEFAULT_CRACKLIB_DICT)"' -Wall
+AM_CPPFLAGS = -I. -I.. -I$(top_srcdir)/lib '-DDEFAULT_CRACKLIB_DICT="$(DEFAULT_CRACKLIB_DICT)"' '-DLOCALEDIR="$(localedir)"' -Wall
cracklib_check_SOURCES = check.c
cracklib_check_LDADD = $(LDADD) $(LTLIBINTL)
@@ -26,3 +27,5 @@ testnum_LDADD = $(LDADD)
teststr_SOURCES = teststr.c
teststr_LDADD = $(LDADD)
+EXTRA_DIST = $(sbin_SCRIPTS) $(sbin_PROGRAMS)
+
diff --git a/src/util/check.c b/src/util/check.c
index 7db0c88..bb8fff5 100644
--- a/src/util/check.c
+++ b/src/util/check.c
@@ -24,6 +24,7 @@ main(int argc, char **argv)
setlocale(LC_ALL, "");
#ifdef ENABLE_NLS
+ bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
#endif
diff --git a/src/util/cracklib-update b/src/util/cracklib-update
new file mode 100644
index 0000000..cce7189
--- /dev/null
+++ b/src/util/cracklib-update
@@ -0,0 +1,46 @@
+#!/bin/sh
+# update-cracklib - Regenerate cracklib word lists
+#
+# This script is based on the original cron job written by Jean Pierre
+# LeJacq <jplejacq@quoininc.com>.
+
+set -e
+
+umask 0022
+
+if [ -r "/etc/cracklib/cracklib.conf" ]
+then
+ . /etc/cracklib/cracklib.conf
+else
+ echo Error: cannot read configuration file /etc/cracklib/cracklib.conf
+ exit 1
+fi
+
+if [ ! -d /var/cache/cracklib/ ]; then
+ install -d -m 755 /var/cache/cracklib/
+fi
+
+if [ -n "${cracklib_dictpath_src}" -a -n "${cracklib_dictpath}" ]
+then
+ export LC_COLLATE=C
+ processed=0
+ for i in ${cracklib_dictpath_src}
+ do
+ if ! [ -e /var/cache/cracklib/src-dicts ] \
+ || ! grep -q "$i" /var/cache/cracklib/src-dicts \
+ || ! [ -e "${cracklib_dictpath}.pwd" ] \
+ || [ "$i" -nt "${cracklib_dictpath}.pwd" ]
+ then
+ if [ $processed = 0 ]
+ then
+ /usr/sbin/cracklib-format ${cracklib_dictpath_src} | \
+ /usr/sbin/cracklib-packer
+ processed=1
+ echo "${cracklib_dictpath_src}" > \
+ /var/cache/cracklib/src-dicts
+ fi
+ fi
+ done
+fi
+
+exit 0
diff --git a/src/util/packer.c b/src/util/packer.c
index e3f9500..be6fbf5 100644
--- a/src/util/packer.c
+++ b/src/util/packer.c
@@ -22,6 +22,7 @@ main(argc, argv)
PWDICT *pwp;
char buffer[STRINGSIZE], prev[STRINGSIZE];
char *file;
+ char opened = 0;
if (argc <= 1)
{
@@ -39,12 +40,6 @@ main(argc, argv)
return (-1);
}
- if (!(pwp = PWOpen(file, "w")))
- {
- perror(file);
- return (-1);
- }
-
wrote = 0;
prev[0] = '\0';
@@ -62,6 +57,16 @@ main(argc, argv)
continue;
}
+ if (!opened)
+ {
+ if (!(pwp = PWOpen(file, "w")))
+ {
+ perror(file);
+ return (-1);
+ }
+ opened = 1;
+ }
+
/*
* If this happens, strcmp() in FindPW() in packlib.c will be unhappy.
*/
@@ -79,7 +84,8 @@ main(argc, argv)
wrote++;
}
- PWClose(pwp);
+ if (opened)
+ PWClose(pwp);
printf("%lu %lu\n", readed, wrote);
diff --git a/src/util/testnum.c b/src/util/testnum.c
index ae2246d..ca210ff 100644
--- a/src/util/testnum.c
+++ b/src/util/testnum.c
@@ -20,7 +20,7 @@ main ()
PWDICT *pwp;
char buffer[STRINGSIZE];
- if (!(pwp = PWOpen (NULL, "r")))
+ if (!(pwp = PWOpen (DEFAULT_CRACKLIB_DICT, "r")))
{
perror ("PWOpen");
return (-1);
diff --git a/src/util/teststr.c b/src/util/teststr.c
index 2a31fa4..9fb9cda 100644
--- a/src/util/teststr.c
+++ b/src/util/teststr.c
@@ -15,7 +15,7 @@ main ()
PWDICT *pwp;
char buffer[STRINGSIZE];
- if (!(pwp = PWOpen (NULL, "r")))
+ if (!(pwp = PWOpen (DEFAULT_CRACKLIB_DICT, "r")))
{
perror ("PWOpen");
return (-1);