--- /dev/null
+--- cvs-nserver-1.11.1.52/src/cvschkpw.c.orig Sat Sep 8 18:30:58 2001
++++ cvs-nserver-1.11.1.52/src/cvschkpw.c Tue Mar 11 21:21:21 2003
+@@ -223,7 +223,7 @@
+ }
+
+ #ifdef HAVE_INITGROUPS
+- if (initgroups(system_user, passwd->pw_gid) != 0)
++ if (getuid()==0 && initgroups(system_user, passwd->pw_gid) != 0)
+ {
+ fputs(err_prefix, stderr);
+ printf("cvschkpw: could not set groups for user %s: %s\n",
--- /dev/null
+--- cvs-nserver-1.11.1.52/src/server.c.orig Sat Mar 23 01:33:45 2002
++++ cvs-nserver-1.11.1.52/src/server.c Tue Mar 11 20:53:37 2003
+@@ -5009,7 +5009,7 @@
+ /* Now initialize our argument vector (for arguments from the client). */
+
+ /* Small for testing. */
+- argument_vector_size = 1;
++ argument_vector_size = 2;
+ argument_vector =
+ (char **) malloc (argument_vector_size * sizeof (char *));
+ if (argument_vector == NULL)
+@@ -5044,6 +5044,9 @@
+ say something like "client apparently supports an option not supported
+ by this server" or something like that instead of usage message. */
+ argument_vector[0] = "cvs server";
++ argument_vector[1] = NULL;
++ /* first, null terminate;
++ * second, serve_argument writes outside bounds if argumentvector_size<2 */
+
+ while (1)
+ {
+--- cvs-nserver-1.11.1.52/acl/dir-acl.c.orig Sun Mar 31 22:23:38 2002
++++ cvs-nserver-1.11.1.52/acl/dir-acl.c Tue Mar 11 21:01:41 2003
+@@ -102,7 +102,7 @@
+ /* reallocate if needed */
+ if (dirs_count + 1 >= dirs_allocated) {
+ struct DIR_ACL **new_top_dirs =
+- realloc(top_dirs, dirs_allocated + ALLOC_DELTA);
++ realloc(top_dirs, (dirs_allocated + ALLOC_DELTA) * sizeof(DIR_ACL*));
+
+ if (new_top_dirs == NULL)
+ return 0;
+--- cvs-nserver-1.11.1.52/src/main.c.orig Sun Mar 31 22:49:08 2002
++++ cvs-nserver-1.11.1.52/src/main.c Tue Mar 11 21:11:38 2003
+@@ -922,6 +922,13 @@
+ #ifdef SERVER_SUPPORT
+ /* ACL-related stuff */
+ if (server_active) {
++ if(!Pserver_Repos) {
++ printf("E No repository specified.\n");
++#ifdef SYSTEM_CLEANUP
++ SYSTEM_CLEANUP ();
++#endif
++ exit(EXIT_FAILURE);
++ }
+ set_repository();
+ load_cvsgroups();
+ load_acladmins();
Summary(tr): Sürüm denetim sistemi - nserver
Name: cvs-nserver
Version: 1.11.1.52
-Release: 2
+Release: 3
License: GPL
Group: Development/Version Control
Source0: http://dl.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
Patch4: %{name}-home_etc.patch
Patch5: %{name}-ssl-link.patch
Patch6: %{name}-fix_doc_CVSUSER.patch
+Patch7: %{name}-segv.patch
+Patch8: %{name}-initgroups-rootonly.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: openssl-devel >= 0.9.7
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
+%patch8 -p1
%build
%{__aclocal}
%files -n cvs-nserver-pserver
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/cvs-pserver*
-/etc/sysconfig/rc-inetd/cvs-pserver
+%config(noreplace) %verify(not size mtime md5) /etc/sysconfig/rc-inetd/cvs-pserver
%{_mandir}/man8/cvs-pserver.8*
%files -n cvs-nserver-nserver
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/cvs-nserver*
%doc NEWS.nserver FAQ.nserver
-/etc/sysconfig/rc-inetd/cvs-nserver
+%config(noreplace) %verify(not size mtime md5) /etc/sysconfig/rc-inetd/cvs-nserver
%{_mandir}/man8/cvs-nserver.8*