diff options
author | Nathan Neulinger <nneul@neulinger.org> | 2023-03-15 10:04:57 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-15 10:04:57 -0500 |
commit | 89287967715403b5bc4ef59b1ebbc4c30699af21 (patch) | |
tree | 69dee694210451e5d2edc58e61571067f223fd34 /src | |
parent | 31fd22797ed64d9077c9b07d7a636337b6984ecc (diff) | |
parent | b0f3383844bfb9ec091d99765056afa64074753a (diff) | |
download | cracklib-89287967715403b5bc4ef59b1ebbc4c30699af21.tar.gz |
Merge branch 'master' into weblate-cracklib-master
Diffstat (limited to 'src')
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 @@ -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); |