The branch, master has been updated via 1237b00 lib: Simplify pidfile.c via bd6bc30 Fix whitespace from 079c301 ntdb: always return int from tdb_store_flag_to_ntdb()
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 1237b006d5fad9523fb7e7bf9ecb09df66afb7f6 Author: Volker Lendecke <v...@samba.org> Date: Mon Jan 19 10:52:11 2015 +0100 lib: Simplify pidfile.c Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Volker Lendecke <v...@samba.org> Autobuild-Date(master): Thu Feb 26 18:28:31 CET 2015 on sn-devel-104 commit bd6bc30693ce989588d8ebebeb717f4e82d590c4 Author: Volker Lendecke <v...@samba.org> Date: Wed Jan 14 17:11:12 2015 +0100 Fix whitespace Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> ----------------------------------------------------------------------- Summary of changes: lib/util/pidfile.c | 41 +++++++++++++++++------------------------ libcli/security/display_sec.c | 14 +++++++------- librpc/idl/smb_acl.idl | 20 ++++++++++---------- 3 files changed, 34 insertions(+), 41 deletions(-) Changeset truncated at 500 lines: diff --git a/lib/util/pidfile.c b/lib/util/pidfile.c index 1b382d1..5590780 100644 --- a/lib/util/pidfile.c +++ b/lib/util/pidfile.c @@ -1,20 +1,20 @@ /* this code is broken - there is a race condition with the unlink (tridge) */ -/* +/* Unix SMB/CIFS implementation. pidfile handling Copyright (C) Andrew Tridgell 1998 - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ @@ -30,23 +30,21 @@ /** * return the pid in a pidfile. return 0 if the process (or pidfile) - * does not exist + * does not exist */ pid_t pidfile_pid(const char *piddir, const char *name) { + size_t len = strlen(piddir) + strlen(name) + 6; + char pidFile[len]; int fd; char pidstr[20]; pid_t ret = -1; - char *pidFile; - if (asprintf(&pidFile, "%s/%s.pid", piddir, name) < 0) { - return 0; - } + snprintf(pidFile, sizeof(pidFile), "%s/%s.pid", piddir, name); fd = open(pidFile, O_NONBLOCK | O_RDONLY, 0644); if (fd == -1) { - SAFE_FREE(pidFile); return 0; } @@ -62,7 +60,7 @@ pid_t pidfile_pid(const char *piddir, const char *name) pidFile)); goto noproc; } - + if (!process_exists_by_pid(ret)) { DEBUG(10, ("Process with PID=%d does not exist.\n", (int)ret)); goto noproc; @@ -76,7 +74,6 @@ pid_t pidfile_pid(const char *piddir, const char *name) } close(fd); - SAFE_FREE(pidFile); DEBUG(10, ("Process with PID=%d is running.\n", (int)ret)); return ret; @@ -85,35 +82,32 @@ pid_t pidfile_pid(const char *piddir, const char *name) DEBUG(10, ("Deleting %s, since %d is not a Samba process.\n", pidFile, (int)ret)); unlink(pidFile); - SAFE_FREE(pidFile); return 0; } /** - * create a pid file in the pid directory. open it and leave it locked + * create a pid file in the pid directory. open it and leave it locked */ void pidfile_create(const char *piddir, const char *name) { + size_t len = strlen(piddir) + strlen(name) + 6; + char pidFile[len]; int fd; char buf[20]; - char *pidFile; pid_t pid; - if (asprintf(&pidFile, "%s/%s.pid", piddir, name) < 0) { - DEBUG(0,("ERROR: Out of memory\n")); - exit(1); - } + snprintf(pidFile, sizeof(pidFile), "%s/%s.pid", piddir, name); pid = pidfile_pid(piddir, name); if (pid != 0) { - DEBUG(0,("ERROR: %s is already running. File %s exists and process id %d is running.\n", + DEBUG(0,("ERROR: %s is already running. File %s exists and process id %d is running.\n", name, pidFile, (int)pid)); exit(1); } fd = open(pidFile, O_NONBLOCK | O_CREAT | O_WRONLY | O_EXCL, 0644); if (fd == -1) { - DEBUG(0,("ERROR: can't open %s: Error was %s\n", pidFile, + DEBUG(0,("ERROR: can't open %s: Error was %s\n", pidFile, strerror(errno))); exit(1); } @@ -121,7 +115,7 @@ void pidfile_create(const char *piddir, const char *name) smb_set_close_on_exec(fd); if (fcntl_lock(fd,F_SETLK,0,1,F_WRLCK)==false) { - DEBUG(0,("ERROR: %s : fcntl lock of file %s failed. Error was %s\n", + DEBUG(0,("ERROR: %s : fcntl lock of file %s failed. Error was %s\n", name, pidFile, strerror(errno))); exit(1); } @@ -129,13 +123,12 @@ void pidfile_create(const char *piddir, const char *name) memset(buf, 0, sizeof(buf)); slprintf(buf, sizeof(buf) - 1, "%u\n", (unsigned int) getpid()); if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) { - DEBUG(0,("ERROR: can't write to file %s: %s\n", + DEBUG(0,("ERROR: can't write to file %s: %s\n", pidFile, strerror(errno))); exit(1); } /* Leave pid file open & locked for the duration... */ - SAFE_FREE(pidFile); } void pidfile_unlink(const char *piddir, const char *name) diff --git a/libcli/security/display_sec.c b/libcli/security/display_sec.c index de8bb8b..a8d173c 100644 --- a/libcli/security/display_sec.c +++ b/libcli/security/display_sec.c @@ -1,19 +1,19 @@ -/* +/* Unix SMB/CIFS implementation. Samba utility functions Copyright (C) Andrew Tridgell 1992-1999 Copyright (C) Luke Kenneth Casson Leighton 1996 - 1999 - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ @@ -237,7 +237,7 @@ void display_sec_acl(struct security_acl *sec_acl) uint32_t i; printf("\tACL\tNum ACEs:\t%u\trevision:\t%x\n", - sec_acl->num_aces, sec_acl->revision); + sec_acl->num_aces, sec_acl->revision); printf("\t---\n"); if (sec_acl->size != 0 && sec_acl->num_aces != 0) { @@ -283,7 +283,7 @@ void display_acl_type(uint16_t type) printf("SEC_DESC_RM_CONTROL_VALID "); if (type & SEC_DESC_SELF_RELATIVE) /* 0x8000 */ printf("SEC_DESC_SELF_RELATIVE "); - + printf("\n"); } diff --git a/librpc/idl/smb_acl.idl b/librpc/idl/smb_acl.idl index ffd1ee2..a7a76c9 100644 --- a/librpc/idl/smb_acl.idl +++ b/librpc/idl/smb_acl.idl @@ -1,28 +1,28 @@ -/* +/* Unix SMB/CIFS implementation. Portable SMB ACL interface Copyright (C) Jeremy Allison 2000 Copyright (C) Andrew Bartlett 2012 - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* +/* * Allow the smb_acl interface to be pushed into an NDR blob and * read/written in python. - * + * * The exact layout of these stuctures is CRITICAL, as a SHA-256 hash is * taken over these after they are pushed as NDR blobs, and stored in an * xattr for ACL verification. @@ -62,7 +62,7 @@ interface smb_acl [case (SMB_ACL_GROUP)] smb_acl_group group; [case (SMB_ACL_GROUP_OBJ)]; [case (SMB_ACL_OTHER)]; - [case (SMB_ACL_MASK)]; + [case (SMB_ACL_MASK)]; } smb_acl_entry_info; typedef struct { @@ -70,16 +70,16 @@ interface smb_acl [switch_is(a_type)] smb_acl_entry_info info; mode_t a_perm; } smb_acl_entry; - + [public] typedef struct { int count; [value(0)] int next; [size_is(count)] smb_acl_entry acl[*]; } smb_acl_t; - + const int SMB_ACL_FIRST_ENTRY = 0; const int SMB_ACL_NEXT_ENTRY = 1; - + const int SMB_ACL_TYPE_ACCESS = 0; const int SMB_ACL_TYPE_DEFAULT = 1; -- Samba Shared Repository