File: tests_testutil.cpp.patch

package info (click to toggle)
zeromq3 4.3.4-6
  • links: PTS
  • area: main
  • in suites: bookworm
  • size: 8,172 kB
  • sloc: cpp: 54,979; ansic: 5,862; makefile: 1,549; sh: 1,138; xml: 203; python: 40
file content (40 lines) | stat: -rw-r--r-- 1,422 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Index: zeromq3-4.3.3/tests/testutil.cpp
===================================================================
--- zeromq3-4.3.3.orig/tests/testutil.cpp
+++ zeromq3-4.3.3/tests/testutil.cpp
@@ -480,10 +480,14 @@ fd_t bind_socket_resolve_port (const cha
         TEST_ASSERT_SUCCESS_RAW_ERRNO (_mkdir (buffer));
         strcat (buffer, "/ipc");
 #else
-        char buffer[PATH_MAX] = "";
-        strcpy (buffer, "tmpXXXXXX");
+        char *buffer = NULL;
+        size_t len = 10;
+        buffer = (char*) malloc(len);
+        strncpy (buffer, "tmpXXXXXX", len);
 #ifdef HAVE_MKDTEMP
         TEST_ASSERT_TRUE (mkdtemp (buffer));
+        len += 7;
+        buffer = (char *)realloc (buffer, len);
         strcat (buffer, "/socket");
 #else
         int fd = mkstemp (buffer);
@@ -491,12 +495,17 @@ fd_t bind_socket_resolve_port (const cha
         close (fd);
 #endif
 #endif
+        len += strlen((*(struct sockaddr_un *) &addr).sun_path);
+        buffer = (char *)realloc (buffer, len);
         strcpy ((*(struct sockaddr_un *) &addr).sun_path, buffer);
         memcpy (my_endpoint_, "ipc://", 7);
-        strcat (my_endpoint_, buffer);
+        len += strlen(my_endpoint_);
+        buffer = (char *)realloc (buffer, len);
+        strncat (my_endpoint_, buffer, len);
 
         // TODO check return value of unlink
         unlink (buffer);
+        free (buffer);
 #else
         return retired_fd;
 #endif