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