summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/stat/stat-3.3/fix-security-format.patch
blob: 0c01ed03833720ea3b04bbc4b73a184ccda86581 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
stat: Fixing security formatting issues

Fix security formatting issues related to printf without NULL argument 

stat.c: In function 'print_human_access':
stat.c:292:13: error: format not a string literal and no format arguments [-Werror=format-security]
     printf (access);
             ^
stat.c: In function 'print_human_time':
stat.c:299:57: error: format not a string literal and no format arguments [-Werror=format-security]
   if (strftime(str, 40, "%c", localtime(t)) > 0) printf(str);
                                                         ^
stat.c: In function 'print_it':
stat.c:613:6: error: format not a string literal and no format arguments [-Werror=format-security]
      printf(b);
      ^
stat.c:642:6: error: format not a string literal and no format arguments [-Werror=format-security]
      printf(b);
      ^

[YOCTO #9550]
[https://bugzilla.yoctoproject.org/show_bug.cgi?id=9550]

Upstream-Status: Pending

Signed-off-by: Edwin Plauchu <edwin.plauchu.camacho@intel.com>

diff --git a/stat.c b/stat.c
index 1ed07a9..2be6f62 100644
--- a/stat.c
+++ b/stat.c
@@ -289,15 +289,15 @@ void print_human_access(struct stat *statbuf)
     default:
       access[0] = '?';
     }
-    printf (access);
+    fputs(access,stdout);
 }
 
 void print_human_time(time_t *t)
 {
   char str[40];
   
-  if (strftime(str, 40, "%c", localtime(t)) > 0) printf(str);
-  else printf("Cannot calculate human readable time, sorry");
+  if (strftime(str, 40, "%c", localtime(t)) > 0) fputs(str,stdout);
+  else fputs("Cannot calculate human readable time, sorry",stdout);
 }
 
 /* print statfs info */
@@ -610,7 +610,7 @@ void print_it(char *masterformat, char *filename,
 	{
 	    strcpy (pformat, "%");
 	    *m++ = '\0';
-	    printf(b);
+	    fputs(b,stdout);
 
 	    /* copy all format specifiers to our format string */
 	    while (isdigit(*m) || strchr("#0-+. I", *m))
@@ -639,7 +639,7 @@ void print_it(char *masterformat, char *filename,
 	}
 	else
 	{
-	    printf(b);
+	    fputs(b,stdout);
 	    b = NULL;
 	}
     }