|
|
64ee22 |
diff -up cracklib-2.9.0/python/_cracklib.c.gzdicts cracklib-2.9.0/python/_cracklib.c
|
|
|
64ee22 |
--- cracklib-2.9.0/python/_cracklib.c.gzdicts 2013-06-01 16:47:13.000000000 +0200
|
|
|
64ee22 |
+++ cracklib-2.9.0/python/_cracklib.c 2013-08-20 12:37:32.028611493 +0200
|
|
|
64ee22 |
@@ -23,6 +23,7 @@
|
|
|
64ee22 |
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
64ee22 |
*/
|
|
|
64ee22 |
|
|
|
64ee22 |
+#include "config.h"
|
|
|
64ee22 |
#ifdef PYTHON_H
|
|
|
64ee22 |
#include PYTHON_H
|
|
|
64ee22 |
#else
|
|
|
64ee22 |
@@ -72,9 +73,8 @@ static char _cracklib_FascistCheck_doc [
|
|
|
64ee22 |
static PyObject *
|
|
|
64ee22 |
_cracklib_FascistCheck(PyObject *self, PyObject *args, PyObject *kwargs)
|
|
|
64ee22 |
{
|
|
|
64ee22 |
- char *candidate, *dict;
|
|
|
64ee22 |
- char *defaultdict = NULL;
|
|
|
64ee22 |
- const char *result;
|
|
|
64ee22 |
+ char *candidate;
|
|
|
64ee22 |
+ const char *result, *dict;
|
|
|
64ee22 |
struct stat st;
|
|
|
64ee22 |
char *keywords[] = {"pw", "dictpath", NULL};
|
|
|
64ee22 |
char *dictfile;
|
|
|
64ee22 |
@@ -103,44 +103,35 @@ _cracklib_FascistCheck(PyObject *self, P
|
|
|
64ee22 |
"second argument was not an absolute path!");
|
|
|
64ee22 |
return NULL;
|
|
|
64ee22 |
}
|
|
|
64ee22 |
- dictfile = malloc(strlen(dict) + sizeof(DICT_SUFFIX));
|
|
|
64ee22 |
- if (dictfile == NULL)
|
|
|
64ee22 |
- {
|
|
|
64ee22 |
- PyErr_SetFromErrnoWithFilename(PyExc_OSError, dict);
|
|
|
64ee22 |
- return NULL;
|
|
|
64ee22 |
- }
|
|
|
64ee22 |
- sprintf(dictfile, "%s" DICT_SUFFIX, dict);
|
|
|
64ee22 |
- if (lstat(dictfile, &st) == -1)
|
|
|
64ee22 |
- {
|
|
|
64ee22 |
- PyErr_SetFromErrnoWithFilename(PyExc_OSError, dictfile);
|
|
|
64ee22 |
- free(dictfile);
|
|
|
64ee22 |
- return NULL;
|
|
|
64ee22 |
- }
|
|
|
64ee22 |
- free(dictfile);
|
|
|
64ee22 |
} else
|
|
|
64ee22 |
{
|
|
|
64ee22 |
- defaultdict = strdup(GetDefaultCracklibDict());
|
|
|
64ee22 |
- if (errno == ENOMEM) {
|
|
|
64ee22 |
- PyErr_SetFromErrno(PyExc_OSError);
|
|
|
64ee22 |
- return NULL;
|
|
|
64ee22 |
- }
|
|
|
64ee22 |
- dictfile = malloc(strlen(defaultdict) + sizeof(DICT_SUFFIX));
|
|
|
64ee22 |
- if (dictfile == NULL)
|
|
|
64ee22 |
- {
|
|
|
64ee22 |
- PyErr_SetFromErrnoWithFilename(PyExc_OSError, defaultdict);
|
|
|
64ee22 |
- free(defaultdict);
|
|
|
64ee22 |
- return NULL;
|
|
|
64ee22 |
- }
|
|
|
64ee22 |
- sprintf(dictfile, "%s" DICT_SUFFIX, defaultdict);
|
|
|
64ee22 |
+ /* No need to strdup() anything as this is a constant value */
|
|
|
64ee22 |
+ dict = GetDefaultCracklibDict();
|
|
|
64ee22 |
+ }
|
|
|
64ee22 |
+
|
|
|
64ee22 |
+ dictfile = malloc(strlen(dict) + sizeof(DICT_SUFFIX) + 3);
|
|
|
64ee22 |
+ if (dictfile == NULL)
|
|
|
64ee22 |
+ {
|
|
|
64ee22 |
+ PyErr_SetFromErrnoWithFilename(PyExc_OSError, dict);
|
|
|
64ee22 |
+ return NULL;
|
|
|
64ee22 |
+ }
|
|
|
64ee22 |
+ sprintf(dictfile, "%s" DICT_SUFFIX, dict);
|
|
|
64ee22 |
+ if (lstat(dictfile, &st) == -1)
|
|
|
64ee22 |
+ {
|
|
|
64ee22 |
+#ifdef HAVE_ZLIB_H
|
|
|
64ee22 |
+ sprintf(dictfile, "%s" DICT_SUFFIX ".gz", dict);
|
|
|
64ee22 |
if (lstat(dictfile, &st) == -1)
|
|
|
64ee22 |
{
|
|
|
64ee22 |
+ sprintf(dictfile, "%s" DICT_SUFFIX, dict);
|
|
|
64ee22 |
+#endif
|
|
|
64ee22 |
PyErr_SetFromErrnoWithFilename(PyExc_OSError, dictfile);
|
|
|
64ee22 |
- free(defaultdict);
|
|
|
64ee22 |
free(dictfile);
|
|
|
64ee22 |
return NULL;
|
|
|
64ee22 |
+#ifdef HAVE_ZLIB_H
|
|
|
64ee22 |
}
|
|
|
64ee22 |
- free(dictfile);
|
|
|
64ee22 |
+#endif
|
|
|
64ee22 |
}
|
|
|
64ee22 |
+ free(dictfile);
|
|
|
64ee22 |
|
|
|
64ee22 |
setlocale(LC_ALL, "");
|
|
|
64ee22 |
#ifdef ENABLE_NLS
|
|
|
64ee22 |
@@ -148,14 +139,9 @@ _cracklib_FascistCheck(PyObject *self, P
|
|
|
64ee22 |
#endif
|
|
|
64ee22 |
|
|
|
64ee22 |
LOCK();
|
|
|
64ee22 |
- result = FascistCheck(candidate, dict ? dict : defaultdict);
|
|
|
64ee22 |
+ result = FascistCheck(candidate, dict);
|
|
|
64ee22 |
UNLOCK();
|
|
|
64ee22 |
|
|
|
64ee22 |
- if (defaultdict != NULL)
|
|
|
64ee22 |
- {
|
|
|
64ee22 |
- free(defaultdict);
|
|
|
64ee22 |
- }
|
|
|
64ee22 |
-
|
|
|
64ee22 |
if (result != NULL)
|
|
|
64ee22 |
{
|
|
|
64ee22 |
PyErr_SetString(PyExc_ValueError, result);
|