[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