Compare commits

..

4 Commits
rawhide ... f14

Author SHA1 Message Date
Honza Horák
9e38a661d9 Fixed segmentation fault in yppoll used without hostname
(rhbz#698619)
Fixed man page typo
2011-05-05 10:15:20 +02:00
Karel Klic
bb22e4a153 Reverted previous change 2010-11-23 14:39:26 +01:00
Karel Klic
3846a90092 Do not compile ypmatch with ypclnt.c, use glibc's implementation instead of it 2010-11-23 14:10:20 +01:00
Karel Klic
fac3f52447 rhbz#653921 - Can't change NIS password with yppasswd 2010-11-19 18:46:42 +01:00
12 changed files with 84 additions and 353 deletions

6
.gitignore vendored
View File

@ -1,7 +1 @@
yp-tools-2.11.tar.bz2
/yp-tools-2.12.tar.bz2
/yp-tools-2.14.tar.bz2
/yp-tools-3.0.1.tar.bz2
/yp-tools-3.3.tar.bz2
/yp-tools-yp-tools-4.2.2.tar.gz
/v4.2.3.tar.gz

View File

@ -1 +1 @@
SHA512 (v4.2.3.tar.gz) = 2fcdaaeb8af4c3f62aa571a488c04561356681fc18b919ef728cfc1941578870cce74b136959f49e4ab04f988a79252163c1abe30b357788cb0b5faca7b5d147
ea7627e97d31c1e16296db96110b1da2 yp-tools-2.11.tar.bz2

View File

@ -0,0 +1,34 @@
diff -up yp-tools-2.11/.gethost.orig yp-tools-2.11/.gethost
diff -up yp-tools-2.11/src/yppoll.c.orig yp-tools-2.11/src/yppoll.c
--- yp-tools-2.11/src/yppoll.c.orig 2011-05-05 09:57:26.528805348 +0200
+++ yp-tools-2.11/src/yppoll.c 2011-05-05 10:00:28.256533438 +0200
@@ -218,7 +218,10 @@ main (int argc, char **argv)
hent = gethostbyaddr ((char *)&clnt_saddr.sin_addr.s_addr,
sizeof (clnt_saddr.sin_addr.s_addr), AF_INET);
- hostname = strdup (hent->h_name);
+ if (hent)
+ {
+ hostname = strdup (hent->h_name);
+ }
}
else
{
@@ -261,7 +264,7 @@ main (int argc, char **argv)
&clnt_sock);
if (client == NULL)
{
- fprintf (stderr, _("Can't create connection to %s.\n"), hostname);
+ fprintf (stderr, _("Can't create connection to %s.\n"), hostname ? hostname : "unknown");
return 1;
}
@@ -279,7 +282,7 @@ main (int argc, char **argv)
if (clnt_res != TRUE)
{
fprintf (stdout, _("Domain %s is not supported by %s.\n"), domainname,
- hostname);
+ hostname ? hostname : "unknown");
return 1;
}

View File

@ -0,0 +1,11 @@
diff -up yp-tools-2.11/src/yppasswd.c.shadow yp-tools-2.11/src/yppasswd.c
--- yp-tools-2.11/src/yppasswd.c.shadow 2010-04-20 15:31:59.000000000 +0200
+++ yp-tools-2.11/src/yppasswd.c 2010-11-19 18:37:14.931766315 +0100
@@ -449,6 +449,7 @@ verifypassword (struct passwd *pwd, char
passwdlen = get_passwd_len (pwd->pw_passwd);
if (pwd->pw_passwd[0]
+ && 0 != strcmp (pwd->pw_passwd, "x") /* don't check shadow passwords */
&& !strncmp (pwd->pw_passwd, crypt (pwdstr, pwd->pw_passwd), passwdlen)
&& uid)
{

12
yp-tools-2.11-typo.patch Normal file
View File

@ -0,0 +1,12 @@
diff -up yp-tools-2.11/man/ypmatch.1.in.typo yp-tools-2.11/man/ypmatch.1.in
--- yp-tools-2.11/man/ypmatch.1.in.typo 2011-05-05 09:52:14.754703060 +0200
+++ yp-tools-2.11/man/ypmatch.1.in 2011-05-05 09:52:25.240571968 +0200
@@ -5,7 +5,7 @@
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License version 2 as
-.\" published bythe Free Software Foundation.
+.\" published by the Free Software Foundation.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of

View File

@ -1,11 +0,0 @@
diff -up yp-tools-2.12/src/yppasswd.c.adjunct yp-tools-2.12/src/yppasswd.c
--- yp-tools-2.12/src/yppasswd.c.adjunct 2012-04-23 13:17:47.000988833 +0200
+++ yp-tools-2.12/src/yppasswd.c 2012-04-23 13:18:01.209802938 +0200
@@ -774,6 +775,7 @@
/* We can't check the password with shadow passwords enabled. We
* leave the checking to yppasswdd */
if (uid != 0 && strcmp (pwd->pw_passwd, "x") != 0 &&
+ 0 != strncmp (pwd->pw_passwd, "##", 2) && /* don't check passwords using passwd.adjunct feature */
strcmp (pwd->pw_passwd, hashpass ) != 0)
{
int passwdlen = get_passwd_len (pwd->pw_passwd);

View File

@ -1,44 +0,0 @@
diff -up yp-tools-2.12/src/yppasswd.c.crypt yp-tools-2.12/src/yppasswd.c
--- yp-tools-2.12/src/yppasswd.c.crypt 2012-04-23 13:01:35.599721168 +0200
+++ yp-tools-2.12/src/yppasswd.c 2012-04-23 13:16:18.251261293 +0200
@@ -772,9 +778,16 @@ main (int argc, char **argv)
{
int passwdlen = get_passwd_len (pwd->pw_passwd);
char *sane_passwd = alloca (passwdlen + 1);
+ char *crypted;
strncpy (sane_passwd, pwd->pw_passwd, passwdlen);
sane_passwd[passwdlen] = 0;
- if (strcmp (crypt (s, sane_passwd), sane_passwd))
+ crypted = crypt (s, sane_passwd);
+ if(crypted == NULL)
+ {
+ fprintf (stderr, _("Sorry - crypt() failed.\n"));
+ return 1;
+ }
+ if (strcmp (crypted, sane_passwd))
{
fprintf (stderr, _("Sorry.\n"));
return 1;
@@ -789,6 +802,7 @@ main (int argc, char **argv)
char *error_msg;
#endif /* USE_CRACKLIB */
char *buf, salt[37], *p = NULL;
+ char *crypted;
int tries = 0;
buf = (char *) malloc (129);
@@ -869,7 +883,13 @@ main (int argc, char **argv)
break;
}
- yppwd.newpw.pw_passwd = strdup (crypt (buf, salt));
+ crypted = crypt (buf, salt);
+ if(crypted == NULL) {
+ fprintf (stderr, _("Sorry - crypt() failed.\n"));
+ return 1;
+ } else {
+ yppwd.newpw.pw_passwd = strdup (crypted);
+ }
}
if (f_flag)

View File

@ -1,68 +0,0 @@
diff -up yp-tools-2.12/man/yppasswd.1.in.hash yp-tools-2.12/man/yppasswd.1.in
--- yp-tools-2.12/man/yppasswd.1.in.hash 2011-09-09 16:18:49.469037058 +0200
+++ yp-tools-2.12/man/yppasswd.1.in 2011-09-09 16:20:19.101030930 +0200
@@ -81,6 +81,12 @@ for authentication with the
.BR yppasswdd (8)
daemon. Subsequently, the
program prompts for the updated information:
+.P
+If we use shadowing passwords using passwd.adjunct, SHA-512 will be
+used for hashing a new password by default. If we want to use MD5,
+SHA_256 or older DES, we need to set the environment variable
+YP_PASSWD_HASH. Possible values are "DES", "MD5", "SHA-256" and
+"SHA-512" (value is case-insensitive).
.\"
.\"
.IP "\fByppasswd\fP or \fB-p\fP"
diff -up yp-tools-2.12/src/yppasswd.c.hash yp-tools-2.12/src/yppasswd.c
--- yp-tools-2.12/src/yppasswd.c.hash 2011-09-09 16:20:35.360029823 +0200
+++ yp-tools-2.12/src/yppasswd.c 2011-09-09 16:25:21.589010245 +0200
@@ -514,6 +514,32 @@ create_random_salt (char *salt, int num_
close (fd);
}
+
+/*
+ * Reads environment variable YP_PASSWD_HASH and returns hash id.
+ * Possible values are MD5, SHA-256, SHA-512 and DES.
+ * If other value is set or it is not set at all, SHA-512 is used.
+ */
+static int
+get_env_hash_id()
+{
+ const char *v = getenv("YP_PASSWD_HASH");
+ if (!v)
+ return SHA_512;
+
+ if (!strcasecmp(v, "DES"))
+ return DES;
+
+ if (!strcasecmp(v, "SHA-256"))
+ return SHA_256;
+
+ if (!strcasecmp(v, "MD5"))
+ return MD5;
+
+ return SHA_512;
+}
+
+
int
main (int argc, char **argv)
{
@@ -723,6 +749,15 @@ main (int argc, char **argv)
hash_id = get_hash_id (pwd->pw_passwd);
+ /* If we use passwd.adjunct, there is no magic value like $1$ in the
+ * beginning of password, but ##username instead. Thus, SHA_512 will be
+ * used for hashing a new password by default. If we want to use DES,
+ * MD5 or SHA_256, we need to set the environment variable
+ * YP_PASSWD_HASH (e.g. YP_PASSWD_HASH=DES).
+ */
+ if (strncmp(pwd->pw_passwd, "##", 2) == 0)
+ hash_id = get_env_hash_id();
+
/* Preserve 'rounds=<N>$' (if present) in case of SHA-2 */
if (hash_id == SHA_256 || hash_id == SHA_512)
{

View File

@ -1,24 +0,0 @@
diff -ru yp-tools-3.3-orig/Makefile.am yp-tools-3.3/Makefile.am
--- yp-tools-3.3-orig/Makefile.am 2014-10-29 15:28:02.000000000 +0100
+++ yp-tools-3.3/Makefile.am 2014-12-10 18:47:11.864137423 +0100
@@ -5,7 +5,7 @@
#
AUTOMAKE_OPTIONS = 1.5 gnits dist-bzip2
#
-SUBDIRS = lib src nss_nis6 po man etc
+SUBDIRS = lib src po man etc
CLEANFILES = *~
diff -ru yp-tools-3.3-orig/Makefile.in yp-tools-3.3/Makefile.in
--- yp-tools-3.3-orig/Makefile.in 2014-12-05 12:44:37.000000000 +0100
+++ yp-tools-3.3/Makefile.in 2014-12-10 18:16:20.996550012 +0100
@@ -382,7 +382,7 @@
#
AUTOMAKE_OPTIONS = 1.5 gnits dist-bzip2
#
-SUBDIRS = lib src nss_nis6 po man etc
+SUBDIRS = lib src po man etc
CLEANFILES = *~
ACLOCAL_AMFLAGS = -I m4
M4_FILES = m4/getline.m4

View File

@ -1,11 +0,0 @@
--- yp-tools-yp-tools-4.2.2/src/yppasswd.c.strict-protorypes 2017-02-21 15:51:03.452034055 +0100
+++ yp-tools-yp-tools-4.2.2/src/yppasswd.c 2017-02-21 15:51:14.996030455 +0100
@@ -547,7 +547,7 @@ create_random_salt (char *salt, int num_
* If other value is set or it is not set at all, SHA-512 is used.
*/
static int
-get_env_hash_id()
+get_env_hash_id(void)
{
const char *v = getenv("YP_PASSWD_HASH");
if (!v)

View File

@ -1,19 +0,0 @@
author Filip Januš (fjanus@redhat.com)
date 29. 10. 2019
diff -ur yp-tools-4.2.3/src/yppasswd.c yp-tools-master/src/yppasswd.c
--- yp-tools-4.2.3/src/yppasswd.c 2018-03-27 15:47:48.000000000 +0200
+++ yp-tools-master/src/yppasswd.c 2019-10-29 12:00:29.000000000 +0100
@@ -281,6 +281,11 @@
CLIENT *clnt;
clnt = clnt_create (master, YPPROG, YPVERS, "udp");
+
+ /* clnt_create can return NULL in some cases */
+ if (clnt == NULL)
+ return NULL;
+
clnt->cl_auth = authunix_create_default ();
if (name == NULL)

View File

@ -1,25 +1,20 @@
Summary: NIS (or YP) client programs
Name: yp-tools
Version: 4.2.3
Release: 13%{?dist}
Version: 2.11
Release: 6%{?dist}
License: GPLv2
Source: https://github.com/thkukuk/yp-tools/archive/v%{version}.tar.gz
Patch1: yp-tools-2.12-hash.patch
Patch2: yp-tools-2.12-crypt.patch
Patch3: yp-tools-2.12-adjunct.patch
Patch4: yp-tools-4.2.2-strict-prototypes.patch
Patch5: yp-tools-4.2.3-yppasswd.patch
Group: System Environment/Base
Source: ftp://ftp.kernel.org/pub/linux/utils/net/NIS/yp-tools-%{version}.tar.bz2
# Not sent to upstream
Patch0: yp-tools-2.11-shadow.patch
Patch1: yp-tools-2.11-typo.patch
Patch2: yp-tools-2.11-gethost.patch
Url: http://www.linux-nis.org/nis/yp-tools/index.html
BuildRequires: make
BuildRequires: autoconf, automake, gettext-devel, libtool, libtirpc-devel, libnsl2-devel
Requires: ypbind >= 3:2.4-2
Requires: glibc
%global __filter_GLIBC_PRIVATE 1
Requires: ypbind
%description
The Network Information Service (NIS) is a system which provides
network information (login names, passwords, home directories, groupinformation) to all of the machines on a network. NIS can enable
network information (login names, passwords, home directories, group
information) to all of the machines on a network. NIS can enable
users to login on any machine on the network, as long as the machine
has the NIS client programs running and the user's password is
@ -37,184 +32,46 @@ on your network. You will also need to install the ypbind package on
every machine running NIS client programs. If you need an NIS server,
you'll need to install the ypserv package on one machine on the network.
%package devel
Summary: NIS (or YP) client programs
Requires: yp-tools
%description devel
Install yp-tools-devel package for developing applications that use yp-tools
%prep
%setup -q -n %{name}-%{version}
%patch1 -p1 -b .hash
%patch2 -p1 -b .crypt
%patch3 -p1 -b .adjunct
%patch4 -p1 -b .strict-prototypes
%patch5 -p1
autoreconf -i -f -v
%setup -q
%patch0 -p1 -b .shadow
%patch1 -p1 -b .typo
%patch2 -p1 -b .gethost
%build
export CFLAGS="$CFLAGS %{optflags} -Wno-cast-function-type"
%configure --disable-domainname
%make_build
make
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR="$RPM_BUILD_ROOT" INSTALL_PROGRAM=install install
%find_lang %name
%files -f %{name}.lang
%defattr(-,root,root,-)
%doc AUTHORS COPYING README ChangeLog NEWS etc/nsswitch.conf
%doc THANKS
%{_bindir}/*
%doc THANKS TODO
/usr/bin/*
%{_mandir}/*/*
%{_sbindir}/*
/usr/sbin/*
/var/yp/nicknames
%changelog
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.3-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.3-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Nov 12 2021 Björn Esser <besser82@fedoraproject.org> - 4.2.3-11
- Rebuild(libnsl2)
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.3-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.3-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.3-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.3-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Oct 29 2019 Filip Januš <fjanus@redhat.com> - 4.2.3-6
- Add yppasswd patch
- Bug https://bugzilla.redhat.com/show_bug.cgi?id=1671452
- Pull request https://github.com/thkukuk/yp-tools/pull/7
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 4.2.3-3
- Rebuilt for libcrypt.so.2 (#1666033)
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Apr 19 2018 Petr Kubat <pkubat@redhat.com> - 4.2.3-1
- Update to version 4.2.3
* Thu Mar 15 2018 Matej Mužila <mmuzila@redhat.com> - 4.2.2-7
- Disable cast-function-type warning
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Jan 20 2018 Björn Esser <besser82@fedoraproject.org> - 4.2.2-5
- Rebuilt for switch to libxcrypt
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Mon May 29 2017 Matej Mužila <mmuzila@redhat.com> - 4.2.2-2
- Require ypbind >= 3:2.4-2
* Fri May 19 2017 Matej Mužila <mmuzila@redhat.com> - 4.2.2-1
- Update to version 4.2.2 supporting IPv6
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.14-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Nov 28 2016 Petr Kubat <pkubat@redhat.com> - 2.14-7
- Modified passwd.adjunct patch by Gilbert E. Detillieux (#1297955)
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.14-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.14-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.14-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.14-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.14-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Mon May 06 2013 Honza Horak <hhorak@redhat.com> - 2.14-1
- New upstream version 2.14
* Mon Mar 25 2013 Honza Horak <hhorak@redhat.com> - 2.12-13
- Fix build for aarch64
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.12-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Mon Sep 24 2012 Honza Horak <hhorak@redhat.com> - 2.12-12
- Minor spec file fixes
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.12-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Wed Jul 11 2012 Honza Horak <hhorak@redhat.com> - 2.12-10
- Minor spec file fixes
* Mon Apr 23 2012 Honza Horak <hhorak@redhat.com> - 2.12-9
- Do not check old passwords using passwd.adjunct feature
- Patch from Paul Wouters to handle crypt() returning NULL
Resolves: #814803
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.12-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Fri Sep 09 2011 Honza Horak <hhorak@redhat.com> - 2.12-7
- Added YP_PASSWD_HASH environment variable to set default
algorithm for hashing a new password
Resolves: #699666
* Wed May 04 2011 Honza Horak <hhorak@redhat.com> - 2.12-6
- Applied -gethost patch to check return value
* Thu May 05 2011 Honza Horak <hhorak@redhat.com> - 2.11-6
- Fixed segmentation fault in yppoll used without hostname
(rhbz#698619)
* Fri Mar 18 2011 Honza Horak <hhorak@redhat.com> - 2.12-5
- Applied -typo patch to fix a grammar mistake
(rhbz#668743)
* Thu May 05 2011 Honza Horak <hhorak@redhat.com> - 2.11-5
- Fixed man page typo
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.12-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Tue Nov 23 2010 Karel Klic <kklic@redhat.com> - 2.12-3
* Tue Nov 23 2010 Karel Klic <kklic@redhat.com> - 2.11-4
- Reverted previous change
* Tue Nov 23 2010 Karel Klic <kklic@redhat.com> - 2.12-2
* Tue Nov 23 2010 Karel Klic <kklic@redhat.com> - 2.11-3
- Added patch that removes ypclnt.c from being compiled into
ypmatch (rhbz#546149)
* Fri Nov 19 2010 Karel Klic <kklic@redhat.com> - 2.12-1
- New upstream version
* Fri Nov 19 2010 Karel Klic <kklic@redhat.com> - 2.11-2
- Added patch to fix yppasswd utility when used with shadow
passwords (rhbz#653921)