!strcmp(dirent->d_name, ".."))
continue;
- sprintf(temppath, "%s/%s", slavesdir, dirent->d_name);
+ nowarn_snprintf(temppath, sizeof(temppath), "%s/%s", slavesdir,
+ dirent->d_name);
/* Can we always assume that the slaves device entries
* are links to the real directories for the slave
* devices?
}
slavepath[linklen] = '\0';
- sprintf(temppath, "%s/%s/dev", slavesdir, slavepath);
+ nowarn_snprintf(temppath, sizeof(temppath), "%s/%s/dev",
+ slavesdir, slavepath);
if (access(temppath, F_OK) != 0)
- sprintf(temppath, "%s/%s/device/dev", slavesdir, slavepath);
+ nowarn_snprintf(temppath, sizeof(temppath),
+ "%s/%s/device/dev", slavesdir,
+ slavepath);
if (read_block_dev_entry(temppath, &majdev, &mindev)) {
perror("Error getting slave device numbers");
closedir(dirhandle);
if (slavedu)
continue;
- sprintf(temppath, "%s/%s", slavesdir, slavepath);
+ nowarn_snprintf(temppath, sizeof(temppath), "%s/%s", slavesdir,
+ slavepath);
__init_per_file_disk_util(td, majdev, mindev, temppath);
slavedu = disk_util_exists(majdev, mindev);
#include "io_u_queue.h"
#include "workqueue.h"
#include "steadystate.h"
+#include "nowarn_snprintf.h"
#ifdef CONFIG_SOLARISAIO
#include <sys/asynch.h>
break; \
(td)->error = ____e; \
if (!(td)->first_error) \
- snprintf(td->verror, sizeof(td->verror), "file:%s:%d, func=%s, error=%s", __FILE__, __LINE__, (func), (msg)); \
+ nowarn_snprintf(td->verror, sizeof(td->verror), \
+ "file:%s:%d, func=%s, error=%s", \
+ __FILE__, __LINE__, (func), (msg)); \
} while (0)
--- /dev/null
+#ifndef _NOWARN_SNPRINTF_H_
+#define _NOWARN_SNPRINTF_H_
+
+#include <stdio.h>
+#include <stdarg.h>
+
+static inline int nowarn_snprintf(char *str, size_t size, const char *format,
+ ...)
+{
+ va_list args;
+
+ va_start(args, format);
+#if __GNUC__ -0 >= 8
+#pragma GCC diagnostic push "-Wformat-truncation"
+#pragma GCC diagnostic ignored "-Wformat-truncation"
+#endif
+ return vsnprintf(str, size, format, args);
+#if __GNUC__ -0 >= 8
+#pragma GCC diagnostic pop "-Wformat-truncation"
+#endif
+ va_end(args);
+}
+
+#endif
#include <stdint.h>
#include <string.h>
#include <limits.h>
+#include "nowarn_snprintf.h"
struct thread_rand32_state {
uint32_t s[4];
name++;
} while (1);
- snprintf(out, size, "%s-%s-%d-verify.state", prefix, ename, num);
+ nowarn_snprintf(out, size, "%s-%s-%d-verify.state", prefix, ename, num);
out[size - 1] = '\0';
}