[SCM] Samba Shared Repository - branch v3-5-test updated

Volker Lendecke vlendec at samba.org
Mon Nov 30 13:50:33 MST 2009


The branch, v3-5-test has been updated
       via  c0282f8... Fix bug 6546: Avoid accessing buf[-1] if NUL byte comes from fgets
      from  f9651fc... Revert "s3: Fix commit 9b5f8eb59ed7f65d4c017cd6a9dc668ebf3115b6."

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-5-test


- Log -----------------------------------------------------------------
commit c0282f8f7d40b893610fdc235cb130f1fedbeb13
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Nov 30 21:48:33 2009 +0100

    Fix bug 6546: Avoid accessing buf[-1] if NUL byte comes from fgets

-----------------------------------------------------------------------

Summary of changes:
 source3/utils/eventlogadm.c     |    5 ++++-
 source3/utils/net_rpc.c         |    3 ++-
 source3/utils/smbget.c          |    4 +++-
 source4/torture/nbench/nbench.c |    4 +++-
 4 files changed, 12 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/utils/eventlogadm.c b/source3/utils/eventlogadm.c
index 7fc04b0..415330f 100644
--- a/source3/utils/eventlogadm.c
+++ b/source3/utils/eventlogadm.c
@@ -118,7 +118,10 @@ static int DoWriteCommand( int argc, char **argv, bool debugflag, char *exename
 		if (fgets( linein, sizeof( linein ) - 1, f1 ) == NULL) {
 			break;
 		}
-		linein[strlen( linein ) - 1] = 0;	/* whack the line delimiter */
+		if ((strlen(linein) > 0)
+		    && (linein[strlen(linein)-1] == '\n')) {
+			linein[strlen(linein)-1] = 0;
+		}
 
 		if ( debugflag )
 			printf( "Read line [%s]\n", linein );
diff --git a/source3/utils/net_rpc.c b/source3/utils/net_rpc.c
index fdb11f3..5b3b1e3 100644
--- a/source3/utils/net_rpc.c
+++ b/source3/utils/net_rpc.c
@@ -4262,8 +4262,9 @@ static bool get_user_tokens_from_file(FILE *f,
 			return true;
 		}
 
-		if (line[strlen(line)-1] == '\n')
+		if ((strlen(line) > 0) && (line[strlen(line)-1] == '\n')) {
 			line[strlen(line)-1] = '\0';
+		}
 
 		if (line[0] == ' ') {
 			/* We have a SID */
diff --git a/source3/utils/smbget.c b/source3/utils/smbget.c
index b7d56cd..15fe1fd 100644
--- a/source3/utils/smbget.c
+++ b/source3/utils/smbget.c
@@ -94,7 +94,9 @@ static void get_auth_data(const char *srv, const char *shr, char *wg, int wglen,
 		if (fgets(tmp, sizeof(tmp), stdin) == NULL) {
 			return;
 		}
-		if(tmp[strlen(tmp)-1] == '\n')tmp[strlen(tmp)-1] = '\0';
+		if ((strlen(tmp) > 0) && (tmp[strlen(tmp)-1] == '\n')) {
+			tmp[strlen(tmp)-1] = '\0';
+		}
 		strncpy(un, tmp, unlen-1);
 	} else if(username) strncpy(un, username, unlen-1);
 
diff --git a/source4/torture/nbench/nbench.c b/source4/torture/nbench/nbench.c
index 5a4037f..05c889d 100644
--- a/source4/torture/nbench/nbench.c
+++ b/source4/torture/nbench/nbench.c
@@ -95,7 +95,9 @@ again:
 
 		nbench_line_count++;
 
-		line[strlen(line)-1] = 0;
+		if ((strlen(line) > 0) && line[strlen(line)-1] == '\n') {
+			line[strlen(line)-1] = 0;
+		}
 
 		all_string_sub(line,"client1", cname, sizeof(line));
 		


-- 
Samba Shared Repository


More information about the samba-cvs mailing list