NMU diff attached.

Christoph
No differences were encountered between the control files

diff -Nru flex-2.6.1/debian/changelog flex-2.6.1/debian/changelog
--- flex-2.6.1/debian/changelog	2017-01-04 20:24:42.000000000 +0100
+++ flex-2.6.1/debian/changelog	2017-01-04 20:24:42.000000000 +0100
@@ -1,3 +1,11 @@
+flex (2.6.1-1.3) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTBFS on hurd (upstream 7975c43384d766ca12cb3f292754dbdc34168886).
+    (Closes: 838133).
+
+ -- Christoph Berg <m...@debian.org>  Wed, 04 Jan 2017 19:53:51 +0100
+
 flex (2.6.1-1.2) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru flex-2.6.1/src/main.c flex-2.6.1/src/main.c
--- flex-2.6.1/src/main.c	2016-03-01 01:06:56.000000000 +0100
+++ flex-2.6.1/src/main.c	2017-01-04 20:24:42.000000000 +0100
@@ -358,8 +358,8 @@
 			if (!path) {
 				m4 = M4;
 			} else {
+				int m4_length = strlen(m4);
 				do {
-					char m4_path[PATH_MAX];
 					int length = strlen(path);
 					struct stat sbuf;
 
@@ -367,19 +367,17 @@
 					if (!endOfDir)
 						endOfDir = path+length;
 
-					if ((endOfDir-path+2) >= sizeof(m4_path)) {
-					    path = endOfDir+1;
-						continue;
-					}
+					{
+						char m4_path[endOfDir-path + 1 + m4_length + 1];
 
-					strncpy(m4_path, path, sizeof(m4_path));
-					m4_path[endOfDir-path] = '/';
-					m4_path[endOfDir-path+1] = '\0';
-					strncat(m4_path, m4, sizeof(m4_path));
-					if (stat(m4_path, &sbuf) == 0 &&
-						(S_ISREG(sbuf.st_mode)) && sbuf.st_mode & S_IXUSR) {
-						m4 = strdup(m4_path);
-						break;
+						memcpy(m4_path, path, endOfDir-path);
+						m4_path[endOfDir-path] = '/';
+						memcpy(m4_path + (endOfDir-path) + 1, m4, m4_length + 1);
+						if (stat(m4_path, &sbuf) == 0 &&
+							(S_ISREG(sbuf.st_mode)) && sbuf.st_mode & S_IXUSR) {
+							m4 = strdup(m4_path);
+							break;
+						}
 					}
 					path = endOfDir+1;
 				} while (path[0]);

Attachment: signature.asc
Description: PGP signature

Reply via email to