[darwinbuild-changes] [91] trunk/darwintrace/darwintrace.c

source_changes at macosforge.org source_changes at macosforge.org
Wed Oct 4 01:44:35 PDT 2006


Revision: 91
          http://trac.macosforge.org/projects/darwinbuild/changeset/91
Author:   kevin
Date:     2006-10-04 01:44:35 -0700 (Wed, 04 Oct 2006)

Log Message:
-----------
- honor bytes_read when parsing #!

Modified Paths:
--------------
    trunk/darwintrace/darwintrace.c

Modified: trunk/darwintrace/darwintrace.c
===================================================================
--- trunk/darwintrace/darwintrace.c	2005-07-25 20:50:00 UTC (rev 90)
+++ trunk/darwintrace/darwintrace.c	2006-10-04 08:44:35 UTC (rev 91)
@@ -141,11 +141,12 @@
 		if (fd != -1) {
 			char buffer[MAXPATHLEN];
 			ssize_t bytes_read = read(fd, buffer, MAXPATHLEN);
-			if (buffer[0] == '#' && buffer[1] == '!') {
+			if (bytes_read > 0 &&
+			    buffer[0] == '#' && buffer[1] == '!') {
 				const char* interp = &buffer[2];
 				int i;
 				/* skip past leading whitespace */
-				for (i = 2; i < (MAXPATHLEN-1); ++i) {
+				for (i = 2; i < bytes_read; ++i) {
 					if (buffer[i] != ' ' && buffer[i] != '\t') {
 						interp = &buffer[i];
 						break;
@@ -153,7 +154,7 @@
 				}
 				/* found interpreter (or ran out of data)
 				 skip until next whitespace, then terminate the string */
-				for (; i < (MAXPATHLEN-1); ++i) {
+				for (; i < bytes_read; ++i) {
 					if (buffer[i] == ' ' || buffer[i] == '\t' || buffer[i] == '\n') {
 						buffer[i] = 0;
 					}

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/darwinbuild-changes/attachments/20061004/5521c2d4/attachment.html


More information about the darwinbuild-changes mailing list