|
 |
766f481 |
From 2c76660566d026d430305231e72c259372de4380 Mon Sep 17 00:00:00 2001
|
|
 |
766f481 |
From: Lubomir Rintel <lkundrak@v3.sk>
|
|
 |
766f481 |
Date: Wed, 4 Dec 2013 23:17:10 +0100
|
|
 |
766f481 |
Subject: [PATCH] Fix build with -Werror=format-security
|
|
 |
766f481 |
|
|
 |
766f481 |
Fedora, starting with version 21, will enable this flag in order to limit
|
|
 |
766f481 |
potentially insecure uses of format strings. It is required for format strings
|
|
 |
766f481 |
to be constant now.
|
|
 |
766f481 |
---
|
|
 |
766f481 |
cmdline/cmdline_afp.c | 4 ++--
|
|
 |
766f481 |
cmdline/cmdline_testafp.c | 12 ++++++------
|
|
 |
766f481 |
fuse/client.c | 5 +----
|
|
 |
766f481 |
fuse/commands.c | 4 ++--
|
|
 |
766f481 |
lib/afp_url.c | 12 ++++++------
|
|
 |
766f481 |
5 files changed, 17 insertions(+), 20 deletions(-)
|
|
 |
766f481 |
|
|
 |
766f481 |
diff --git a/cmdline/cmdline_afp.c b/cmdline/cmdline_afp.c
|
|
 |
766f481 |
index 827150b..59f0977 100644
|
|
 |
766f481 |
--- a/cmdline/cmdline_afp.c
|
|
 |
766f481 |
+++ b/cmdline/cmdline_afp.c
|
|
 |
766f481 |
@@ -828,11 +828,11 @@ int com_status(char * arg)
|
|
 |
766f481 |
char text[40960];
|
|
 |
766f481 |
|
|
 |
766f481 |
afp_status_header(text,&len;;
|
|
 |
766f481 |
- printf(text);
|
|
 |
4416edf |
+ printf("%s", text);
|
|
 |
766f481 |
|
|
 |
766f481 |
len=40960;
|
|
 |
766f481 |
afp_status_server(server,text,&len;;
|
|
 |
766f481 |
- printf(text);
|
|
 |
4416edf |
+ printf("%s", text);
|
|
 |
766f481 |
return 0;
|
|
 |
766f481 |
}
|
|
 |
766f481 |
|
|
 |
766f481 |
diff --git a/cmdline/cmdline_testafp.c b/cmdline/cmdline_testafp.c
|
|
 |
766f481 |
index c40f2bd..f887aec 100644
|
|
 |
766f481 |
--- a/cmdline/cmdline_testafp.c
|
|
 |
766f481 |
+++ b/cmdline/cmdline_testafp.c
|
|
 |
766f481 |
@@ -26,12 +26,12 @@ static int test_one_url(char * url_string,
|
|
 |
766f481 |
struct afp_url valid_url;
|
|
 |
766f481 |
afp_default_url(&valid_url);
|
|
 |
766f481 |
valid_url.protocol=protocol;
|
|
 |
766f481 |
- sprintf(valid_url.servername,servername);
|
|
 |
766f481 |
- sprintf(valid_url.volumename,volumename);
|
|
 |
766f481 |
- sprintf(valid_url.path,path);
|
|
 |
766f481 |
- sprintf(valid_url.username,username);
|
|
 |
766f481 |
- sprintf(valid_url.password,password);
|
|
 |
766f481 |
- sprintf(valid_url.uamname,uamname);
|
|
 |
4416edf |
+ snprintf(valid_url.servername,sizeof(valid_url.servername),"%s",servername);
|
|
 |
4416edf |
+ snprintf(valid_url.volumename,sizeof(valid_url.volumename),"%s",volumename);
|
|
 |
4416edf |
+ snprintf(valid_url.path,sizeof(valid_url.path),"%s",path);
|
|
 |
4416edf |
+ snprintf(valid_url.username,sizeof(valid_url.username),"%s",username);
|
|
 |
4416edf |
+ snprintf(valid_url.password,sizeof(valid_url.password),"%s",password);
|
|
 |
4416edf |
+ snprintf(valid_url.uamname,(valid_url.uamname),"%s",uamname);
|
|
 |
766f481 |
valid_url.port=port;
|
|
 |
766f481 |
|
|
 |
766f481 |
if (afp_url_validate(url_string,&valid_url))
|
|
 |
766f481 |
diff --git a/fuse/client.c b/fuse/client.c
|
|
 |
766f481 |
index f795ca6..d19e9ef 100644
|
|
 |
766f481 |
--- a/fuse/client.c
|
|
 |
766f481 |
+++ b/fuse/client.c
|
|
 |
766f481 |
@@ -509,7 +509,6 @@ static int prepare_buffer(int argc, char * argv[])
|
|
 |
766f481 |
int read_answer(int sock) {
|
|
 |
766f481 |
int len=0, expected_len=0, packetlen;
|
|
 |
766f481 |
char incoming_buffer[MAX_CLIENT_RESPONSE];
|
|
 |
766f481 |
- char toprint[MAX_CLIENT_RESPONSE+200];
|
|
 |
766f481 |
struct timeval tv;
|
|
 |
766f481 |
fd_set rds,ords;
|
|
 |
766f481 |
int ret;
|
|
 |
766f481 |
@@ -546,9 +545,7 @@ int read_answer(int sock) {
|
|
 |
766f481 |
}
|
|
 |
766f481 |
|
|
 |
766f481 |
done:
|
|
 |
766f481 |
- memset(toprint,0,MAX_CLIENT_RESPONSE+200);
|
|
 |
766f481 |
- snprintf(toprint,MAX_CLIENT_RESPONSE+200,"%s",incoming_buffer+sizeof(*answer));
|
|
 |
766f481 |
- printf(toprint);
|
|
 |
766f481 |
+ printf("%.200s",incoming_buffer+sizeof(*answer));
|
|
 |
766f481 |
return ((struct afp_server_response *) incoming_buffer)->result;
|
|
 |
766f481 |
|
|
 |
766f481 |
return 0;
|
|
 |
766f481 |
diff --git a/fuse/commands.c b/fuse/commands.c
|
|
 |
766f481 |
index aa7444d..bb06928 100644
|
|
 |
766f481 |
--- a/fuse/commands.c
|
|
 |
766f481 |
+++ b/fuse/commands.c
|
|
 |
4416edf |
@@ -163,6 +163,7 @@ static void fuse_log_for_client(void * priv,
|
|
 |
766f481 |
len = strlen(c->client_string);
|
|
 |
4416edf |
snprintf(c->client_string+len,
|
|
 |
766f481 |
MAX_CLIENT_RESPONSE-len,
|
|
 |
4416edf |
+ "%s",
|
|
 |
766f481 |
message);
|
|
 |
766f481 |
} else {
|
|
 |
4416edf |
|
|
 |
766f481 |
@@ -468,7 +468,7 @@ static int process_mount(struct fuse_client * c)
|
|
 |
766f481 |
volume->mapping=req->map;
|
|
 |
766f481 |
afp_detect_mapping(volume);
|
|
 |
766f481 |
|
|
 |
766f481 |
- snprintf(volume->mountpoint,255,req->mountpoint);
|
|
 |
4416edf |
+ snprintf(volume->mountpoint,255,"%s",req->mountpoint);
|
|
 |
766f481 |
|
|
 |
766f481 |
/* Create the new thread and block until we get an answer back */
|
|
 |
766f481 |
{
|
|
 |
766f481 |
diff --git a/lib/afp_url.c b/lib/afp_url.c
|
|
 |
766f481 |
index 42bac1c..f152d7b 100644
|
|
 |
766f481 |
--- a/lib/afp_url.c
|
|
 |
766f481 |
+++ b/lib/afp_url.c
|
|
 |
766f481 |
@@ -233,7 +233,7 @@ int afp_parse_url(struct afp_url * url, const char * toparse, int verbose)
|
|
 |
766f481 |
}
|
|
 |
766f481 |
}
|
|
 |
766f481 |
|
|
 |
766f481 |
- snprintf(url->servername,strlen(p)+1,p);
|
|
 |
4416edf |
+ snprintf(url->servername,strlen(p)+1,"%s",p);
|
|
 |
766f481 |
if (check_servername(url->servername)) {
|
|
 |
766f481 |
if (verbose) printf("This isn't a valid servername\n");
|
|
 |
766f481 |
return -1;
|
|
 |
766f481 |
@@ -263,7 +263,7 @@ int afp_parse_url(struct afp_url * url, const char * toparse, int verbose)
|
|
 |
766f481 |
if ((q=escape_strrchr(p,':',":"))) {
|
|
 |
766f481 |
*q='\0';
|
|
 |
766f481 |
q++;
|
|
 |
766f481 |
- snprintf(url->password,strlen(q)+1,q);
|
|
 |
4416edf |
+ snprintf(url->password,strlen(q)+1,"%s",q);
|
|
 |
766f481 |
if (check_password(url->password)) {
|
|
 |
766f481 |
if (verbose) printf("This isn't a valid passwd\n");
|
|
 |
766f481 |
return -1;
|
|
 |
766f481 |
@@ -276,7 +276,7 @@ int afp_parse_url(struct afp_url * url, const char * toparse, int verbose)
|
|
 |
766f481 |
if ((q=strstr(p,";AUTH="))) {
|
|
 |
766f481 |
*q='\0';
|
|
 |
766f481 |
q+=6;
|
|
 |
766f481 |
- snprintf(url->uamname,strlen(q)+1,q);
|
|
 |
4416edf |
+ snprintf(url->uamname,strlen(q)+1,"%s",q);
|
|
 |
766f481 |
if (check_uamname(url->uamname)) {
|
|
 |
766f481 |
if (verbose) printf("This isn't a valid uamname\n");
|
|
 |
766f481 |
return -1;
|
|
 |
766f481 |
@@ -284,7 +284,7 @@ int afp_parse_url(struct afp_url * url, const char * toparse, int verbose)
|
|
 |
766f481 |
}
|
|
 |
766f481 |
|
|
 |
766f481 |
if (strlen(p)>0) {
|
|
 |
766f481 |
- snprintf(url->username,strlen(p)+1,p);
|
|
 |
4416edf |
+ snprintf(url->username,strlen(p)+1,"%s",p);
|
|
 |
766f481 |
if (check_username(url->username)) {
|
|
 |
766f481 |
if (verbose) printf("This isn't a valid username\n");
|
|
 |
766f481 |
return -1;;
|
|
 |
766f481 |
@@ -304,12 +304,12 @@ parse_secondpart:
|
|
 |
766f481 |
*q='\0';
|
|
 |
766f481 |
q++;
|
|
 |
766f481 |
}
|
|
 |
766f481 |
- snprintf(url->volumename,strlen(p)+1,p);
|
|
 |
4416edf |
+ snprintf(url->volumename,strlen(p)+1,"%s",p);
|
|
 |
766f481 |
|
|
 |
766f481 |
|
|
 |
766f481 |
if (q) {
|
|
 |
766f481 |
url->path[0]='/';
|
|
 |
766f481 |
- snprintf(url->path+1,strlen(q)+1,q);
|
|
 |
4416edf |
+ snprintf(url->path+1,strlen(q)+1,"%s",q);
|
|
 |
766f481 |
}
|
|
 |
766f481 |
|
|
 |
766f481 |
done:
|
|
 |
766f481 |
--
|
|
 |
766f481 |
1.8.4.2
|
|
 |
766f481 |
|