From: Erik M. <er...@us...> - 2001-12-19 20:00:19
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv30998/src/blob Modified Files: linux.c param_block.c Log Message: Remove strcpy() in favour of strncpy(). Again, this forces you to think before you copy a string. The changes in the files are trivial again. Index: linux.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/linux.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- linux.c 2001/11/13 13:27:18 1.6 +++ linux.c 2001/12/19 20:00:15 1.7 @@ -128,20 +128,27 @@ /* copy default commandline from parameter block */ if(blob_status.cmdline[0] != '\0') - strcpy(params->u.cmdline.cmdline, blob_status.cmdline); + strlcpy(params->u.cmdline.cmdline, blob_status.cmdline, + COMMAND_LINE_SIZE); /* copy commandline */ if(argc >= 2) { p = params->u.cmdline.cmdline; for(i = 1; i < argc; i++) { - strcpy(p, argv[i]); - p += strlen(argv[i]); + strlcpy(p, argv[i], COMMAND_LINE_SIZE); + p += strlen(p); *p++ = ' '; } p--; *p = '\0'; + + /* technically spoken we should limit the length of + * the kernel command line to COMMAND_LINE_SIZE + * characters, but the kernel won't copy longer + * strings anyway, so we don't care over here. + */ } if(strlen(params->u.cmdline.cmdline) > 0) { Index: param_block.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/param_block.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- param_block.c 2001/10/31 16:44:18 1.3 +++ param_block.c 2001/12/19 20:00:15 1.4 @@ -77,7 +77,8 @@ static int parse_ptag_cmdline(const struct ptag *ptag) { - strcpy(blob_status.cmdline, ptag->u.cmdline.cmdline); + strlcpy(blob_status.cmdline, ptag->u.cmdline.cmdline, + COMMAND_LINE_SIZE); return 0; } |