!1 【update】package init
From: @konglidong Reviewed-by: @yeqinglong01 Signed-off-by: @yeqinglong01
This commit is contained in:
commit
5edc6c1beb
BIN
deepin-pw-check-5.0.20.7.orig.tar.xz
Normal file
BIN
deepin-pw-check-5.0.20.7.orig.tar.xz
Normal file
Binary file not shown.
96
deepin-pw-check.spec
Normal file
96
deepin-pw-check.spec
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
# Run tests in check section
|
||||||
|
# disable for bootstrapping
|
||||||
|
%bcond_with check
|
||||||
|
%global with_debug 1
|
||||||
|
%if 0%{?with_debug}
|
||||||
|
%global debug_package %{nil}
|
||||||
|
%endif
|
||||||
|
Name: deepin-pw-check
|
||||||
|
Version: 5.0.20.7
|
||||||
|
Release: 1
|
||||||
|
Summary: Used to check password and manager the configuration for password.
|
||||||
|
License: GPL-3.0
|
||||||
|
URL: https://github.com/linuxdeepin/%{name}
|
||||||
|
Source0: %{name}-%{version}.orig.tar.xz
|
||||||
|
Source1: vendor.tar.gz
|
||||||
|
|
||||||
|
BuildRequires: golang
|
||||||
|
BuildRequires: pam-devel
|
||||||
|
BuildRequires: pkgconfig(gio-2.0)
|
||||||
|
BuildRequires: pkgconfig(gdk-3.0)
|
||||||
|
BuildRequires: deepin-gettext-tools
|
||||||
|
BuildRequires: cracklib-devel
|
||||||
|
BuildRequires: iniparser
|
||||||
|
|
||||||
|
Patch0: fix-pwd-pam-update-error.patch
|
||||||
|
Patch1: fix-deepin_pw_check.c-sprintf-error.patch
|
||||||
|
|
||||||
|
Requires: polkit
|
||||||
|
|
||||||
|
%description
|
||||||
|
In order to unify the authentication interface,
|
||||||
|
this interface is designed to adapt to fingerprint, face and other authentication methods.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Header files and libraries used to build deepin-pw-check
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Requires: cracklib-devel iniparser
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
In order to unify the authentication interface,
|
||||||
|
this interface is designed to adapt to fingerprint, face and other authentication methods.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
patch -p1 < rpm/0001-fix-for-UonioTech.patch
|
||||||
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
|
||||||
|
tar -xf %{SOURCE1}
|
||||||
|
|
||||||
|
%build
|
||||||
|
go env -w GO111MODULE=auto
|
||||||
|
BUILDID="0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n')"
|
||||||
|
export GOPATH=%{_builddir}/%{name}-%{version}/vendor:$GOPATH
|
||||||
|
%make_build GO_BUILD_FLAGS=-trimpath GOBUILD="go build -compiler gc -ldflags \"-B $BUILDID\""
|
||||||
|
|
||||||
|
%post
|
||||||
|
pwd-conf-update
|
||||||
|
sed -i "s/pam_pwquality.so/pam_deepin_pw_check.so/g" /etc/pam.d/system-auth
|
||||||
|
sed -i "s/pam_pwquality.so/pam_deepin_pw_check.so/g" /etc/pam.d/password-auth
|
||||||
|
|
||||||
|
%postun
|
||||||
|
if [ "$1" = "0" ] ; then
|
||||||
|
sed -i "s/pam_deepin_pw_check.so/pam_pwquality.so/g" /etc/pam.d/system-auth
|
||||||
|
sed -i "s/pam_deepin_pw_check.so/pam_pwquality.so/g" /etc/pam.d/password-auth
|
||||||
|
fi
|
||||||
|
|
||||||
|
%install
|
||||||
|
mkdir -p %{buildroot}/%{_sysconfdir}/deepin
|
||||||
|
export GOPATH=%{_datadir}/gocode
|
||||||
|
export PKG_FILE_DIR=%{_libdir}/pkgconfig
|
||||||
|
%make_install PKG_FILE_DIR=%{_libdir}/pkgconfig LIBDIR=lib64 PAM_MODULE_DIR=%{_libdir}/security GOBUILD="go build -compiler gc -ldflags \"-B $BUILDID\""
|
||||||
|
%find_lang deepin-pw-check
|
||||||
|
|
||||||
|
|
||||||
|
%files -f deepin-pw-check.lang
|
||||||
|
%doc README.md
|
||||||
|
%license
|
||||||
|
%dir %{_sysconfdir}/deepin
|
||||||
|
%{_bindir}/pwd-conf-update
|
||||||
|
%{_prefix}/lib/deepin-pw-check/deepin-pw-check
|
||||||
|
%{_libdir}/libdeepin_pw_check.so.*
|
||||||
|
%{_libdir}/security/pam_deepin_pw_check.so
|
||||||
|
%{_datadir}/dbus-1/system-services/*.service
|
||||||
|
%{_datadir}/dbus-1/system.d/*.conf
|
||||||
|
%{_datadir}/polkit-1/actions/*.policy
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_libdir}/libdeepin_pw_check.a
|
||||||
|
%{_libdir}/libdeepin_pw_check.so
|
||||||
|
%{_libdir}/pkgconfig/libdeepin_pw_check.pc
|
||||||
|
%{_includedir}/deepin_pw_check.h
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Jul 22 2022 konglidong <konglidong@uniontech.com> - 5.0.20.7-1
|
||||||
|
- package init
|
||||||
4
deepin-pw-check.yaml
Normal file
4
deepin-pw-check.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
version_control: github
|
||||||
|
src_repo: linuxdeepin/deepin-pw-check
|
||||||
|
tag_prefix: ^v
|
||||||
|
seperator: .
|
||||||
37
fix-deepin_pw_check.c-sprintf-error.patch
Normal file
37
fix-deepin_pw_check.c-sprintf-error.patch
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
From b1e0ad33fc949d9bb9aa6f4ce2d566c39e089819 Mon Sep 17 00:00:00 2001
|
||||||
|
From: panchenbo <panchenbo@uniontech.com>
|
||||||
|
Date: Mon, 16 Aug 2021 11:40:16 +0800
|
||||||
|
Subject: [PATCH] fix deepin_pw_check.c sprintf error
|
||||||
|
|
||||||
|
---
|
||||||
|
lib/deepin_pw_check.c | 7 +++++--
|
||||||
|
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/deepin_pw_check.c b/lib/deepin_pw_check.c
|
||||||
|
index d528ad9..f5fcc99 100644
|
||||||
|
--- a/lib/deepin_pw_check.c
|
||||||
|
+++ b/lib/deepin_pw_check.c
|
||||||
|
@@ -255,7 +255,9 @@ bool is_type_valid(const char *pw, char *character_type, int character_num_requi
|
||||||
|
|
||||||
|
p = strtok(character_type_tmp, ";");
|
||||||
|
int length = strlen(pw);
|
||||||
|
- char all_character[512] = "\0";
|
||||||
|
+ char all_character[512];
|
||||||
|
+ memset(all_character, 0, sizeof(all_character));
|
||||||
|
+ int offset = 0;
|
||||||
|
|
||||||
|
while (p != NULL) {
|
||||||
|
char *next_data_addr = NULL;
|
||||||
|
@@ -287,7 +289,8 @@ bool is_type_valid(const char *pw, char *character_type, int character_num_requi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- sprintf(all_character, "%s%s", all_character, p);
|
||||||
|
+ offset = strlen(all_character);
|
||||||
|
+ sprintf(all_character + offset, "%s", p);
|
||||||
|
DEBUG("p is %s, all_character is %s", p, all_character);
|
||||||
|
int ok = 0;
|
||||||
|
for (int i = 0; i < length; i++) {
|
||||||
|
--
|
||||||
|
2.20.1
|
||||||
|
|
||||||
319
fix-pwd-pam-update-error.patch
Normal file
319
fix-pwd-pam-update-error.patch
Normal file
@ -0,0 +1,319 @@
|
|||||||
|
From 2d590fae89f2455893b509d3861f832e31f1a3c9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: panchenbo <panchenbo@uniontech.com>
|
||||||
|
Date: Tue, 10 Aug 2021 16:22:25 +0800
|
||||||
|
Subject: [PATCH] debug
|
||||||
|
|
||||||
|
---
|
||||||
|
tool/pwd_conf_update.c | 157 ++++++++++++++++++-----------------------
|
||||||
|
1 file changed, 70 insertions(+), 87 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tool/pwd_conf_update.c b/tool/pwd_conf_update.c
|
||||||
|
index 580e471..c9f9747 100644
|
||||||
|
--- a/tool/pwd_conf_update.c
|
||||||
|
+++ b/tool/pwd_conf_update.c
|
||||||
|
@@ -189,232 +189,215 @@ int update_conf(OS_TYPE os_type) {
|
||||||
|
}
|
||||||
|
|
||||||
|
char append_string[2048] = {0};
|
||||||
|
- sprintf(append_string, "[Password]\n");
|
||||||
|
+ int offset = 0;
|
||||||
|
+ sprintf(append_string + offset, "[Password]\n");
|
||||||
|
+ offset = strlen(append_string);
|
||||||
|
|
||||||
|
// 如果找不到该字段,则写默认的
|
||||||
|
if (iniparser_find_entry(dic, "Password:STRONG_PASSWORD") == 0) {
|
||||||
|
- sprintf(append_string, "%sSTRONG_PASSWORD = %s\n", append_string, "true");
|
||||||
|
+ sprintf(append_string + offset, "STRONG_PASSWORD = %s\n", "true");
|
||||||
|
DEBUG("set STRONG_PASSWORD");
|
||||||
|
} else {
|
||||||
|
// 如果找到了该字段
|
||||||
|
// 如果是服务器版,强制覆盖配置
|
||||||
|
if (OS_SERVER == os_type) {
|
||||||
|
- sprintf(append_string, "%sSTRONG_PASSWORD = %s\n", append_string, "true");
|
||||||
|
+ sprintf(append_string + offset, "STRONG_PASSWORD = %s\n", "true");
|
||||||
|
DEBUG("restore STRONG_PASSWORD");
|
||||||
|
} else {
|
||||||
|
// 如果不是服务器版,则维持原配置
|
||||||
|
- sprintf(append_string, "%sSTRONG_PASSWORD = %s\n", append_string, "true");
|
||||||
|
+ sprintf(append_string + offset, "STRONG_PASSWORD = %s\n", "true");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ offset = strlen(append_string);
|
||||||
|
|
||||||
|
if (iniparser_find_entry(dic, "Password:PASSWORD_MIN_LENGTH") == 0) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sPASSWORD_MIN_LENGTH = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "PASSWORD_MIN_LENGTH = %d\n",
|
||||||
|
default_conf[os_type].min_length);
|
||||||
|
DEBUG("set PASSWORD_MIN_LENGTH");
|
||||||
|
} else {
|
||||||
|
if (OS_SERVER == os_type) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sPASSWORD_MIN_LENGTH = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "PASSWORD_MIN_LENGTH = %d\n",
|
||||||
|
default_conf[os_type].min_length);
|
||||||
|
DEBUG("restore PASSWORD_MIN_LENGTH");
|
||||||
|
} else {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sPASSWORD_MIN_LENGTH = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "PASSWORD_MIN_LENGTH = %d\n",
|
||||||
|
iniparser_getint(dic,
|
||||||
|
"Password:PASSWORD_MIN_LENGTH",
|
||||||
|
default_conf[os_type].min_length));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ offset = strlen(append_string);
|
||||||
|
|
||||||
|
if (iniparser_find_entry(dic, "Password:PASSWORD_MAX_LENGTH") == 0) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sPASSWORD_MAX_LENGTH = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "PASSWORD_MAX_LENGTH = %d\n",
|
||||||
|
default_conf[os_type].max_length);
|
||||||
|
DEBUG("set PASSWORD_MAX_LENGTH");
|
||||||
|
} else {
|
||||||
|
if (OS_SERVER == os_type) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sPASSWORD_MAX_LENGTH = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "PASSWORD_MAX_LENGTH = %d\n",
|
||||||
|
default_conf[os_type].max_length);
|
||||||
|
DEBUG("restore PASSWORD_MAX_LENGTH");
|
||||||
|
} else {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sPASSWORD_MAX_LENGTH = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "PASSWORD_MAX_LENGTH = %d\n",
|
||||||
|
iniparser_getint(dic,
|
||||||
|
"Password:PASSWORD_MAX_LENGTH",
|
||||||
|
default_conf[os_type].max_length));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ offset = strlen(append_string);
|
||||||
|
|
||||||
|
if (iniparser_find_entry(dic, "Password:VALIDATE_POLICY") == 0) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sVALIDATE_POLICY = \"%s\"\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "VALIDATE_POLICY = \"%s\"\n",
|
||||||
|
default_conf[os_type].validate_policy);
|
||||||
|
DEBUG("set VALIDATE_POLICY");
|
||||||
|
} else {
|
||||||
|
char cmd[512];
|
||||||
|
sprintf(cmd, "sed \"/^VALIDATE_POLICY.*/\"d -i %s", PASSWD_CONF_FILE_PATH);
|
||||||
|
system(cmd);
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sVALIDATE_POLICY = \"%s\"\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "VALIDATE_POLICY = \"%s\"\n",
|
||||||
|
default_conf[os_type].validate_policy);
|
||||||
|
DEBUG("set VALIDATE_POLICY after delete");
|
||||||
|
}
|
||||||
|
+ offset = strlen(append_string);
|
||||||
|
|
||||||
|
if (iniparser_find_entry(dic, "Password:VALIDATE_REQUIRED") == 0) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sVALIDATE_REQUIRED = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "VALIDATE_REQUIRED = %d\n",
|
||||||
|
default_conf[os_type].validate_required);
|
||||||
|
DEBUG("set VALIDATE_REQUIRED");
|
||||||
|
} else {
|
||||||
|
if (OS_SERVER == os_type) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sVALIDATE_REQUIRED = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "VALIDATE_REQUIRED = %d\n",
|
||||||
|
default_conf[os_type].validate_required);
|
||||||
|
DEBUG("restore VALIDATE_REQUIRED");
|
||||||
|
} else {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sVALIDATE_REQUIRED = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "VALIDATE_REQUIRED = %d\n",
|
||||||
|
iniparser_getint(dic,
|
||||||
|
"Password:VALIDATE_REQUIRED",
|
||||||
|
default_conf[os_type].validate_required));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ offset = strlen(append_string);
|
||||||
|
|
||||||
|
if (iniparser_find_entry(dic, "Password:PALINDROME_NUM") == 0) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sPALINDROME_NUM = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "PALINDROME_NUM = %d\n",
|
||||||
|
default_conf[os_type].palindorme_num);
|
||||||
|
DEBUG("set PALINDROME_NUM");
|
||||||
|
} else {
|
||||||
|
if (OS_SERVER == os_type) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sPALINDROME_NUM = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "PALINDROME_NUM = %d\n",
|
||||||
|
default_conf[os_type].palindorme_num);
|
||||||
|
DEBUG("restore PALINDROME_NUM");
|
||||||
|
} else {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sPALINDROME_NUM = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "PALINDROME_NUM = %d\n",
|
||||||
|
iniparser_getint(dic,
|
||||||
|
"Password:PALINDROME_NUM",
|
||||||
|
default_conf[os_type].palindorme_num));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ offset = strlen(append_string);
|
||||||
|
|
||||||
|
if (iniparser_find_entry(dic, "Password:WORD_CHECK") == 0) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sWORD_CHECK = %d\n",
|
||||||
|
- append_string,
|
||||||
|
- default_conf[os_type].word_check);
|
||||||
|
+ sprintf(append_string + offset, "WORD_CHECK = %d\n", default_conf[os_type].word_check);
|
||||||
|
DEBUG("set WORD_CHECK");
|
||||||
|
} else {
|
||||||
|
if (OS_SERVER == os_type) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sWORD_CHECK = %d\n",
|
||||||
|
- append_string,
|
||||||
|
- default_conf[os_type].word_check);
|
||||||
|
+ sprintf(append_string + offset, "WORD_CHECK = %d\n", default_conf[os_type].word_check);
|
||||||
|
DEBUG("restore WORD_CHECK");
|
||||||
|
} else {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sWORD_CHECK = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "WORD_CHECK = %d\n",
|
||||||
|
iniparser_getint(dic, "Password:WORD_CHECK", default_conf[os_type].word_check));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ offset = strlen(append_string);
|
||||||
|
|
||||||
|
if (iniparser_find_entry(dic, "Password:MONOTONE_CHARACTER_NUM") == 0) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sMONOTONE_CHARACTER_NUM = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "MONOTONE_CHARACTER_NUM = %d\n",
|
||||||
|
default_conf[os_type].monotone_same_character_num);
|
||||||
|
DEBUG("set MONOTONE_CHARACTER_NUM");
|
||||||
|
} else {
|
||||||
|
if (OS_SERVER == os_type) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sMONOTONE_CHARACTER_NUM = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "MONOTONE_CHARACTER_NUM = %d\n",
|
||||||
|
default_conf[os_type].monotone_same_character_num);
|
||||||
|
DEBUG("restore MONOTONE_CHARACTER_NUM");
|
||||||
|
} else {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sMONOTONE_CHARACTER_NUM = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "MONOTONE_CHARACTER_NUM = %d\n",
|
||||||
|
iniparser_getint(dic,
|
||||||
|
"Password:MONOTONE_CHARACTER_NUM",
|
||||||
|
default_conf[os_type].monotone_same_character_num));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ offset = strlen(append_string);
|
||||||
|
|
||||||
|
if (iniparser_find_entry(dic, "Password:CONSECUTIVE_SAME_CHARACTER_NUM") == 0) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sCONSECUTIVE_SAME_CHARACTER_NUM = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "CONSECUTIVE_SAME_CHARACTER_NUM = %d\n",
|
||||||
|
default_conf[os_type].consecutive_same_character_num);
|
||||||
|
DEBUG("set CONSECUTIVE_SAME_CHARACTER_NUM");
|
||||||
|
} else {
|
||||||
|
if (OS_SERVER == os_type) {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sCONSECUTIVE_SAME_CHARACTER_NUM = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "CONSECUTIVE_SAME_CHARACTER_NUM = %d\n",
|
||||||
|
default_conf[os_type].consecutive_same_character_num);
|
||||||
|
DEBUG("restore CONSECUTIVE_SAME_CHARACTER_NUM");
|
||||||
|
} else {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sCONSECUTIVE_SAME_CHARACTER_NUM = %d\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "CONSECUTIVE_SAME_CHARACTER_NUM = %d\n",
|
||||||
|
iniparser_getint(dic,
|
||||||
|
"Password:CONSECUTIVE_SAME_CHARACTER_NUM",
|
||||||
|
default_conf[os_type].consecutive_same_character_num));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ offset = strlen(append_string);
|
||||||
|
|
||||||
|
if (iniparser_find_entry(dic, "Password:DICT_PATH") == 0) {
|
||||||
|
- sprintf(append_string, "%sDICT_PATH = %s\n", append_string, "");
|
||||||
|
- DEBUG("set WORD_CHECK");
|
||||||
|
+ sprintf(append_string + offset, "DICT_PATH = %s\n", "");
|
||||||
|
+ DEBUG("set DICT_PATH");
|
||||||
|
} else {
|
||||||
|
if (OS_SERVER == os_type) {
|
||||||
|
- sprintf(append_string, "%sDICT_PATH = %s\n", append_string, "");
|
||||||
|
+ sprintf(append_string + offset, "DICT_PATH = %s\n", "");
|
||||||
|
DEBUG("restore DICT_PATH");
|
||||||
|
} else {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sDICT_PATH = %s\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "DICT_PATH = %s\n",
|
||||||
|
iniparser_getstring(dic, "Password:DICT_PATH", ""));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ offset = strlen(append_string);
|
||||||
|
|
||||||
|
if (iniparser_find_entry(dic, "Password:FIRST_LETTER_UPPERCASE") == 0) {
|
||||||
|
- sprintf(append_string, "%sFIRST_LETTER_UPPERCASE = %s\n", append_string, "false");
|
||||||
|
+ sprintf(append_string + offset, "FIRST_LETTER_UPPERCASE = %s\n", "false");
|
||||||
|
DEBUG("set FIRST_LETTER_UPPERCASE");
|
||||||
|
} else {
|
||||||
|
if (OS_SERVER == os_type) {
|
||||||
|
- sprintf(append_string, "%sFIRST_LETTER_UPPERCASE = %s\n", append_string, "false");
|
||||||
|
+ sprintf(append_string + offset, "FIRST_LETTER_UPPERCASE = %s\n", "false");
|
||||||
|
DEBUG("restore FIRST_LETTER_UPPERCASE");
|
||||||
|
} else {
|
||||||
|
- sprintf(append_string,
|
||||||
|
- "%sFIRST_LETTER_UPPERCASE = %s\n",
|
||||||
|
- append_string,
|
||||||
|
+ sprintf(append_string + offset,
|
||||||
|
+ "FIRST_LETTER_UPPERCASE = %s\n",
|
||||||
|
iniparser_getboolean(dic, "Password:FIRST_LETTER_UPPERCASE", false) ? "true"
|
||||||
|
: "false");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- DEBUG("append string is %s", append_string);
|
||||||
|
+ DEBUG("append string :%s", append_string);
|
||||||
|
|
||||||
|
if (strlen(append_string) == 0) {
|
||||||
|
return 0;
|
||||||
|
--
|
||||||
|
2.20.1
|
||||||
|
|
||||||
BIN
vendor.tar.gz
Normal file
BIN
vendor.tar.gz
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user