[PATCH 2/5] fixed strncat size argument on ppc64
Olaf Hering
olaf at aepfle.de
Thu Dec 13 10:48:47 EST 2012
Signed-off-by: Olaf Hering <olaf at aepfle.de>
---
kexec/arch/ppc64/fs2dt.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/kexec/arch/ppc64/fs2dt.c b/kexec/arch/ppc64/fs2dt.c
index d2b6b18..f02540d 100644
--- a/kexec/arch/ppc64/fs2dt.c
+++ b/kexec/arch/ppc64/fs2dt.c
@@ -499,7 +499,7 @@ static void putnode(void)
basename = strrchr(pathname,'/');
- strcat(pathname, "/");
+ strncat(pathname, "/", MAXPATH - strlen(pathname) - 1);
dn = pathname + strlen(pathname);
putprops(dn, namelist, numlist);
@@ -560,7 +560,7 @@ static void putnode(void)
char *old_param;
strcpy(filename, pathname);
- strcat(filename, "bootargs");
+ strncat(filename, "bootargs", MAXPATH - strlen(filename) - 1);
fp = fopen(filename, "r");
if (fp) {
if (getline(&last_cmdline, &cmd_len, fp) == -1)
@@ -599,7 +599,7 @@ static void putnode(void)
* pseries/hvcterminal is supported.
*/
strcpy(filename, pathname);
- strncat(filename, "linux,stdout-path", MAXPATH);
+ strncat(filename, "linux,stdout-path", MAXPATH - strlen(filename) - 1);
fd = open(filename, O_RDONLY);
if (fd == -1) {
printf("Unable to find %s, printing from purgatory is diabled\n",
@@ -623,8 +623,8 @@ static void putnode(void)
read(fd, buff, statbuf.st_size);
close(fd);
strncpy(filename, "/proc/device-tree/", MAXPATH);
- strncat(filename, buff, MAXPATH);
- strncat(filename, "/compatible", MAXPATH);
+ strncat(filename, buff, MAXPATH - strlen(filename) - 1);
+ strncat(filename, "/compatible", MAXPATH - strlen(filename) - 1);
fd = open(filename, O_RDONLY);
if (fd == -1) {
printf("Unable to find %s printing from purgatory is diabled\n",
--
1.8.0.1
More information about the kexec
mailing list