summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2018-05-02 20:54:56 +0300
committerAndrei Karas <akaras@inbox.ru>2018-05-02 20:54:56 +0300
commit6e00588ebfe9441f793c304d42cf3c83463abe0c (patch)
tree193104da0512521ffa939e2b4dc5bf927794bb11
parent0622261073b6f4f0160cb0df150d3e07483d9b1b (diff)
downloadhercules-6e00588ebfe9441f793c304d42cf3c83463abe0c.tar.gz
hercules-6e00588ebfe9441f793c304d42cf3c83463abe0c.tar.bz2
hercules-6e00588ebfe9441f793c304d42cf3c83463abe0c.tar.xz
hercules-6e00588ebfe9441f793c304d42cf3c83463abe0c.zip
Fix possible buffer overflow in common.
-rw-r--r--src/common/grfio.c4
-rw-r--r--src/common/sysinfo.c2
-rw-r--r--src/common/utils.c2
3 files changed, 4 insertions, 4 deletions
diff --git a/src/common/grfio.c b/src/common/grfio.c
index fba3dda86..d328f9c68 100644
--- a/src/common/grfio.c
+++ b/src/common/grfio.c
@@ -786,8 +786,8 @@ static bool grfio_parse_restable_row(const char *row)
if (strstr(w2, ".gat") == NULL && strstr(w2, ".rsw") == NULL)
return false; // we only need the maps' GAT and RSW files
- sprintf(src, "data\\%s", w1);
- sprintf(dst, "data\\%s", w2);
+ safesnprintf(src, 256, "data\\%s", w1);
+ safesnprintf(dst, 256, "data\\%s", w2);
entry = grfio_filelist_find(dst);
if (entry != NULL) {
diff --git a/src/common/sysinfo.c b/src/common/sysinfo.c
index 3c7e25a0c..0056aee1e 100644
--- a/src/common/sysinfo.c
+++ b/src/common/sysinfo.c
@@ -321,7 +321,7 @@ bool sysinfo_git_get_revision(char **out)
while (*ref) {
FILE *fp;
- snprintf(filepath, sizeof(filepath), ".git/%s", ref);
+ safesnprintf(filepath, sizeof(filepath), ".git/%s", ref);
if ((fp = fopen(filepath, "r")) != NULL) {
if (fgets(line, sizeof(line)-1, fp) == NULL) {
fclose(fp);
diff --git a/src/common/utils.c b/src/common/utils.c
index 0d76a885e..74c44d147 100644
--- a/src/common/utils.c
+++ b/src/common/utils.c
@@ -216,7 +216,7 @@ void findfile(const char *p, const char *pat, void (func)(const char*))
if (strcmp(entry->d_name, "..") == 0)
continue;
- sprintf(tmppath,"%s%c%s",path, PATHSEP, entry->d_name);
+ safesnprintf(tmppath, sizeof(tmppath), "%s%c%s", path, PATHSEP, entry->d_name);
// check if the pattern matches.
if (strstr(entry->d_name, pattern)) {