[Pkg-shadow-commits] r3524 - in debian/trunk/debian: . patches

Nicolas FRANÇOIS nekral-guest at alioth.debian.org
Tue Oct 18 22:44:47 UTC 2011


Author: nekral-guest
Date: 2011-10-18 22:44:46 +0000 (Tue, 18 Oct 2011)
New Revision: 3524

Modified:
   debian/trunk/debian/changelog
   debian/trunk/debian/patches/401_cppw_src.dpatch
   debian/trunk/debian/patches/402_cppw_selinux
Log:
    - debian/patches/401_cppw_src.dpatch, debian/patches/402_cppw_selinux:
      Synchronize with coding style.


Modified: debian/trunk/debian/changelog
===================================================================
--- debian/trunk/debian/changelog	2011-10-18 21:58:33 UTC (rev 3523)
+++ debian/trunk/debian/changelog	2011-10-18 22:44:46 UTC (rev 3524)
@@ -45,11 +45,11 @@
     - debian/patches/008_su_get_PAM_username: Removed, feature supported
       upstream.
     - debian/patches/300_CVE-2011-0721: Removed, applied upstream.
-    - debian/patches/402_cppw_selinux: Avoid implicit conversion between
-      integer and boolean.
     - debian/patches/401_cppw_src.dpatch: Replace progname by Prog. Rename
       create_backup_file to create_copy. The lock functions do not ser errno.
       Do not report the error string on cppwexit.
+    - debian/patches/401_cppw_src.dpatch, debian/patches/402_cppw_selinux:
+      Synchronize with coding style.
     - Upstream translation updates from Debian BTS:
       + Brazilian Portuguese. Closes: #622834
       + Catalan. Closes: #627526
@@ -79,7 +79,7 @@
   * Use "linux-any" instead of a negated list of architectures in
     Build-Depends. Closes: #634465
 
- -- Nicolas FRANCOIS (Nekral) <nicolas.francois at centraliens.net>  Tue, 18 Oct 2011 22:43:04 +0200
+ -- Nicolas FRANCOIS (Nekral) <nicolas.francois at centraliens.net>  Wed, 19 Oct 2011 00:37:07 +0200
 
 shadow (1:4.1.4.2+svn3283-3) unstable; urgency=high
 

Modified: debian/trunk/debian/patches/401_cppw_src.dpatch
===================================================================
--- debian/trunk/debian/patches/401_cppw_src.dpatch	2011-10-18 21:58:33 UTC (rev 3523)
+++ debian/trunk/debian/patches/401_cppw_src.dpatch	2011-10-18 22:44:46 UTC (rev 3524)
@@ -7,7 +7,7 @@
 @DPATCH@
 --- /dev/null
 +++ b/src/cppw.c
-@@ -0,0 +1,201 @@
+@@ -0,0 +1,229 @@
 +/*
 +  cppw, cpgr  copy with locking given file over the password or group file
 +  with -s will copy with locking given file over shadow or gshadow file
@@ -44,6 +44,7 @@
 +#include <sys/types.h>
 +#include <signal.h>
 +#include <utime.h>
++#include "exitcodes.h"
 +#include "prototypes.h"
 +#include "pwio.h"
 +#include "shadowio.h"
@@ -54,161 +55,188 @@
 +const char *Prog;
 +
 +const char *filename, *filenewname;
-+static int filelocked = 0;
-+static int (*unlock)();
++static bool filelocked = false;
++static int (*unlock) (void);
 +
 +/* local function prototypes */
-+static int create_copy (FILE *, const char *, struct stat *);
-+static void cppwexit (const char *, int, int);
-+static void cppwcopy (const char *, const char *, int (*) (void), int (*) (void));
-+int main (int, char **);
++static int create_copy (FILE *fp, const char *dest, struct stat *sb);
++static void cppwexit (const char *msg, int syserr, int ret);
++static void cppwcopy (const char *file,
++                      const char *in_file,
++                      int (*file_lock) (void),
++                      int (*file_unlock) (void));
 +
-+static int
-+create_copy (FILE *fp, const char *dest, struct stat *sb)
++static int create_copy (FILE *fp, const char *dest, struct stat *sb)
 +{
-+  struct utimbuf ub;
-+  FILE *bkfp;
-+  int c;
-+  mode_t mask;
++	struct utimbuf ub;
++	FILE *bkfp;
++	int c;
++	mode_t mask;
 +
-+  mask = umask(077);
-+  bkfp = fopen(dest, "w");
-+  umask(mask);
-+  if (!bkfp) return -1;
++	mask = umask (077);
++	bkfp = fopen (dest, "w");
++	(void) umask (mask);
++	if (NULL == bkfp) {
++		return -1;
++	}
 +
-+  rewind(fp);
-+  while ((c = getc(fp)) != EOF) {
-+    if (putc(c, bkfp) == EOF) break;
-+  }
++	rewind (fp);
++	while ((c = getc (fp)) != EOF) {
++		if (putc (c, bkfp) == EOF) {
++			break;
++		}
++	}
 +
-+  if (c != EOF || fflush(bkfp)) {
-+    fclose(bkfp);
-+    unlink(dest);
-+    return -1;
-+  }
-+  if (   (fsync (fileno (bkfp)) != 0)
-+      || (fclose(bkfp) != 0)) {
-+    unlink(dest);
-+    return -1;
-+  }
++	if (   (c != EOF)
++	    || (fflush (bkfp) != 0)) {
++		(void) fclose (bkfp);
++		(void) unlink (dest);
++		return -1;
++	}
++	if (   (fsync (fileno (bkfp)) != 0)
++	    || (fclose (bkfp) != 0)) {
++		(void) unlink (dest);
++		return -1;
++	}
 +
-+  ub.actime = sb->st_atime;
-+  ub.modtime = sb->st_mtime;
-+  if (utime(dest, &ub) ||
-+      chmod(dest, sb->st_mode) ||
-+      chown(dest, sb->st_uid, sb->st_gid)) {
-+    unlink(dest);
-+    return -1;
-+  }
-+  return 0;
++	ub.actime = sb->st_atime;
++	ub.modtime = sb->st_mtime;
++	if (   (utime (dest, &ub) != 0)
++	    || (chmod (dest, sb->st_mode) != 0)
++	    || (chown (dest, sb->st_uid, sb->st_gid) != 0)) {
++		(void) unlink (dest);
++		return -1;
++	}
++	return 0;
 +}
 +
-+static void
-+cppwexit(const char *msg, int syserr, int ret)
++static void cppwexit (const char *msg, int syserr, int ret)
 +{
-+  int err = errno;
-+  if (filelocked) (*unlock)();
-+  if (msg) fprintf(stderr, "%s: %s", Prog, msg);
-+  if (syserr) fprintf(stderr, ": %s", strerror(err));
-+  fprintf(stderr, "\n%s: %s is unchanged\n", Prog, filename);
-+  exit(ret);
++	int err = errno;
++	if (filelocked) {
++		(*unlock) ();
++	}
++	if (NULL != msg) {
++		fprintf (stderr, "%s: %s", Prog, msg);
++	}
++	if (0 != syserr) {
++		fprintf (stderr, ": %s", strerror (err));
++	}
++	fprintf (stderr, "\n%s: %s is unchanged\n", Prog, filename);
++
++	exit (ret);
 +}
 +
-+static void
-+cppwcopy(const char *file, const char *in_file, int (*file_lock) (void), int (*file_unlock) (void))
++static void cppwcopy (const char *file,
++                      const char *in_file,
++                      int (*file_lock) (void),
++                      int (*file_unlock) (void))
 +{
-+  struct stat st1;
-+  FILE *f;
-+  char filenew[1024];
++	struct stat st1;
++	FILE *f;
++	char filenew[1024];
 +
-+  snprintf(filenew, sizeof filenew, "%s.new", file);
-+  unlock = file_unlock;
-+  filename = file;
-+  filenewname = filenew;
++	snprintf (filenew, sizeof filenew, "%s.new", file);
++	unlock = file_unlock;
++	filename = file;
++	filenewname = filenew;
 +  
-+  if (access(file, F_OK)) cppwexit(file, 1, 1);
-+  if (!file_lock()) cppwexit("Couldn't lock file", 0, 5);
-+  filelocked = 1;
++	if (access (file, F_OK) != 0) {
++		cppwexit (file, 1, 1);
++	}
++	if (file_lock () == 0) {
++		cppwexit ("Couldn't lock file", 0, 5);
++	}
++	filelocked = true;
 +
-+  /* file to copy has same owners, perm */
-+  if (stat(file, &st1)) cppwexit(file, 1, 1);
-+  if (!(f = fopen(in_file, "r"))) cppwexit(in_file, 1, 1);
-+  if (create_copy(f, filenew, &st1))
-+    cppwexit("Couldn't make copy", errno, 1);
++	/* file to copy has same owners, perm */
++	if (stat (file, &st1) != 0) {
++		cppwexit (file, 1, 1);
++	}
++	f = fopen (in_file, "r");
++	if (NULL == f) {
++		cppwexit (in_file, 1, 1);
++	}
++	if (create_copy (f, filenew, &st1) != 0) {
++		cppwexit ("Couldn't make copy", errno, 1);
++	}
 +  
-+  /* XXX - here we should check filenew for errors; if there are any,
-+     fail w/ an appropriate error code and let the user manually fix
-+     it. Use pwck or grpck to do the check.  - Stephen (Shamelessly
-+     stolen from '--marekm's comment) */
++	/* XXX - here we should check filenew for errors; if there are any,
++	 * fail w/ an appropriate error code and let the user manually fix
++	 * it. Use pwck or grpck to do the check.  - Stephen (Shamelessly
++	 * stolen from '--marekm's comment) */
 +
-+  if (rename(filenew, file) == -1) {
-+    fprintf(stderr, "%s: can't copy %s: %s)\n",
-+	    Prog, filenew, strerror(errno));
-+    cppwexit(0,0,1);
-+  }
++	if (rename (filenew, file) != 0) {
++		fprintf (stderr, "%s: can't copy %s: %s)\n",
++                         Prog, filenew, strerror (errno));
++		cppwexit (0,0,1);
++	}
 +
-+  (*file_unlock)();
++	(*file_unlock) ();
 +}
 +
-+
-+int
-+main(int argc, char **argv)
++int main (int argc, char **argv)
 +{
-+  int flag;
-+  int cpshadow = 0;
-+  char *in_file;
-+  char *c;
-+  int e = 1;
-+  int do_cppw;
++	int flag;
++	bool cpshadow = false;
++	char *in_file;
++	int e = E_USAGE;
++	bool do_cppw = true;
 +
-+  Prog = ((c = strrchr(*argv, '/')) ? c+1 : *argv);
-+  do_cppw = (strcmp(Prog, "cpgr") != 0);
++	Prog = Basename (argv[0]);
++	if (strcmp (Prog, "cpgr") != 0) {
++		do_cppw = false;
++	}
 +
-+  while ((flag = getopt(argc, argv, "ghps")) != EOF) {
-+    switch (flag) {
-+    case 'p':
-+      do_cppw = 1;
-+      break;
-+    case 'g':
-+      do_cppw = 0;
-+      break;
-+    case 's':
-+      cpshadow = 1;
-+      break;
-+    case 'h':
-+      e = 0;
-+    default:
-+      printf("Usage:\n\
++	while ((flag = getopt (argc, argv, "ghps")) != EOF) {
++		switch (flag) {
++		case 'p':
++			do_cppw = true;
++			break;
++		case 'g':
++			do_cppw = false;
++			break;
++		case 's':
++			cpshadow = true;
++			break;
++		case 'h':
++			e = E_SUCCESS;
++			/*pass through*/
++		default:
++			(void) fputs ("Usage:\n\
 +`cppw <file>' copys over /etc/passwd   `cppw -s <file>' copys over /etc/shadow\n\
 +`cpgr <file>' copys over /etc/group    `cpgr -s <file>' copys over /etc/gshadow\n\
-+");
-+      exit(e);
-+    }
-+  }
++", (E_SUCCESS != e) ? stderr : stdout);
++			exit (e);
++		}
++	}
 +
-+  if (optind >= argc) {
-+    cppwexit ("missing file argument, -h for usage",0,1);
-+  }
++	if (optind >= argc) {
++		cppwexit ("missing file argument, -h for usage",0,1);
++	}
 +
-+  in_file = argv[argc - 1];
++	in_file = argv[argc - 1];
 +
-+  if (do_cppw) {
-+    if (cpshadow)
-+      cppwcopy(SHADOW_FILE, in_file, spw_lock, spw_unlock);
-+    else
-+      cppwcopy(PASSWD_FILE, in_file, pw_lock, pw_unlock);
-+  }
-+  else {
++	if (do_cppw) {
++		if (cpshadow) {
++			cppwcopy (SHADOW_FILE, in_file, spw_lock, spw_unlock);
++		} else {
++			cppwcopy (PASSWD_FILE, in_file, pw_lock, pw_unlock);
++		}
++	} else {
 +#ifdef SHADOWGRP
-+    if (cpshadow)
-+      cppwcopy(SGROUP_FILE, in_file, sgr_lock, sgr_unlock);
-+    else
-+#endif
-+      cppwcopy(GROUP_FILE, in_file, gr_lock, gr_unlock);
-+  }
++		if (cpshadow) {
++			cppwcopy (SGROUP_FILE, in_file, sgr_lock, sgr_unlock);
++		} else
++#endif				/* SHADOWGRP */
++		{
++			cppwcopy (GROUP_FILE, in_file, gr_lock, gr_unlock);
++		}
++	}
 +
-+  return 0;
++	return 0;
 +}
++
 --- a/src/Makefile.am
 +++ b/src/Makefile.am
 @@ -26,6 +26,7 @@

Modified: debian/trunk/debian/patches/402_cppw_selinux
===================================================================
--- debian/trunk/debian/patches/402_cppw_selinux	2011-10-18 21:58:33 UTC (rev 3523)
+++ debian/trunk/debian/patches/402_cppw_selinux	2011-10-18 22:44:46 UTC (rev 3524)
@@ -17,46 +17,46 @@
  #include <utime.h>
 +#ifdef WITH_SELINUX
 +#include <selinux/selinux.h>
-+#endif
++#endif				/* WITH_SELINUX */
+ #include "exitcodes.h"
  #include "prototypes.h"
  #include "pwio.h"
- #include "shadowio.h"
-@@ -117,6 +120,22 @@
-   filenewname = filenew;
-   
-   if (access(file, F_OK)) cppwexit(file, 1, 1);
+@@ -134,6 +137,22 @@
+ 	if (access (file, F_OK) != 0) {
+ 		cppwexit (file, 1, 1);
+ 	}
 +#ifdef WITH_SELINUX
-+  /* if SE Linux is enabled then set the context of all new files
-+     to be the context of the file we are editing */
-+  if (is_selinux_enabled () > 0) {
-+    security_context_t passwd_context=NULL;
-+    int ret = 0;
-+    if (getfilecon (file, &passwd_context) < 0) {
-+      cppwexit (_("Couldn't get file context"), errno, 1);
-+    }
-+    ret = setfscreatecon (passwd_context);
-+    freecon (passwd_context);
-+    if (0 != ret) {
-+      cppwexit (_("setfscreatecon () failed"), errno, 1);
-+    }
-+  }
-+#endif
-   if (!file_lock()) cppwexit("Couldn't lock file", 0, 5);
-   filelocked = 1;
++	/* if SE Linux is enabled then set the context of all new files
++	 * to be the context of the file we are editing */
++	if (is_selinux_enabled () > 0) {
++		security_context_t passwd_context=NULL;
++		int ret = 0;
++		if (getfilecon (file, &passwd_context) < 0) {
++			cppwexit (_("Couldn't get file context"), errno, 1);
++		}
++		ret = setfscreatecon (passwd_context);
++		freecon (passwd_context);
++		if (0 != ret) {
++			cppwexit (_("setfscreatecon () failed"), errno, 1);
++		}
++	}
++#endif				/* WITH_SELINUX */
+ 	if (file_lock () == 0) {
+ 		cppwexit ("Couldn't lock file", 0, 5);
+ 	}
+@@ -162,6 +181,15 @@
+ 		cppwexit (0,0,1);
+ 	}
  
-@@ -137,6 +156,15 @@
-     cppwexit(0,0,1);
-   }
- 
 +#ifdef WITH_SELINUX
-+  /* unset the fscreatecon */
-+  if (is_selinux_enabled () > 0) {
-+    if (setfscreatecon (NULL)) {
-+      cppwexit (_("setfscreatecon() failed"), errno, 1);
-+    }
-+  }
-+#endif
++	/* unset the fscreatecon */
++	if (is_selinux_enabled () > 0) {
++		if (setfscreatecon (NULL)) {
++		cppwexit (_("setfscreatecon() failed"), errno, 1);
++		}
++	}
++#endif				/* WITH_SELINUX */
 +
-   (*file_unlock)();
+ 	(*file_unlock) ();
  }
  




More information about the Pkg-shadow-commits mailing list