From a75f0c40fe0912535fe102792f27c13d01df8e3e Mon Sep 17 00:00:00 2001
From: Brennan Ashton <bashton@brennanashton.com>
Date: Tue, 29 Oct 2019 23:09:43 -0700
Subject: runtime: Purge snprintf
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We are writting cpp for these operations we should be using std:string
and boost:format.  This also cleans up some compiler warnings about
possible string truncation.

Signed-off-by: Brennan Ashton <bashton@brennanashton.com>

Also, removing the `HAVE_SNPRINT` check around the now snprintf-free
handling

Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
---
 gnuradio-runtime/lib/vmcircbuf_mmap_tmpfile.cc | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

(limited to 'gnuradio-runtime/lib/vmcircbuf_mmap_tmpfile.cc')

diff --git a/gnuradio-runtime/lib/vmcircbuf_mmap_tmpfile.cc b/gnuradio-runtime/lib/vmcircbuf_mmap_tmpfile.cc
index ec5f320ab1..f6c1777013 100644
--- a/gnuradio-runtime/lib/vmcircbuf_mmap_tmpfile.cc
+++ b/gnuradio-runtime/lib/vmcircbuf_mmap_tmpfile.cc
@@ -41,6 +41,7 @@
 #include <fcntl.h>
 #include <stdio.h>
 #include <string.h>
+#include <boost/format.hpp>
 
 namespace gr {
 
@@ -58,34 +59,33 @@ vmcircbuf_mmap_tmpfile::vmcircbuf_mmap_tmpfile(int size) : gr::vmcircbuf(size)
     }
 
     int seg_fd = -1;
-    char seg_name[1024];
+    std::string seg_name;
 
     static int s_seg_counter = 0;
 
     // open a temporary file that we'll map in a bit later
     while (1) {
-        snprintf(seg_name,
-                 sizeof(seg_name),
-                 "%s/gnuradio-%d-%d-XXXXXX",
-                 gr::tmp_path(),
-                 getpid(),
-                 s_seg_counter);
+        seg_name = str(boost::format(
+                       "%s/gnuradio-%d-%d-XXXXXX") %
+                       gr::tmp_path() %
+                       getpid() %
+                       s_seg_counter);
         s_seg_counter++;
 
-        seg_fd = open(seg_name, O_RDWR | O_CREAT | O_EXCL, 0600);
+        seg_fd = open(seg_name.c_str(), O_RDWR | O_CREAT | O_EXCL, 0600);
         if (seg_fd == -1) {
             if (errno == EEXIST) // File already exists (shouldn't happen).  Try again
                 continue;
 
-            char msg[1024];
-            snprintf(msg, sizeof(msg), "gr::vmcircbuf_mmap_tmpfile: open [%s]", seg_name);
-            perror(msg);
+            static std::string msg =
+                str(boost::format("gr::vmcircbuf_mmap_tmpfile: open [%s]") % seg_name);
+            perror(msg.c_str());
             throw std::runtime_error("gr::vmcircbuf_mmap_tmpfile");
         }
         break;
     }
 
-    if (unlink(seg_name) == -1) {
+    if (unlink(seg_name.c_str()) == -1) {
         perror("gr::vmcircbuf_mmap_tmpfile: unlink");
         throw std::runtime_error("gr::vmcircbuf_mmap_tmpfile");
     }
-- 
cgit v1.2.3