aboutsummaryrefslogtreecommitdiff
path: root/archival
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2006-06-25 00:34:52 +0000
committerRob Landley <rob@landley.net>2006-06-25 00:34:52 +0000
commit768945b762b8850691acd2b63116eed18faa1812 (patch)
tree7b443f4d614e327205a5aa17f2c0371c2a04723e /archival
parent641c3537c0bf63793a6195108a1d2e682ed4cba1 (diff)
downloadbusybox-w32-768945b762b8850691acd2b63116eed18faa1812.tar.gz
busybox-w32-768945b762b8850691acd2b63116eed18faa1812.tar.bz2
busybox-w32-768945b762b8850691acd2b63116eed18faa1812.zip
A few patches from Erik Hovland, turning strncpy() into safe_strncpy() and
removing some unnecessary code.
Diffstat (limited to 'archival')
-rw-r--r--archival/tar.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/archival/tar.c b/archival/tar.c
index f3594f685..5b7c1425a 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -42,12 +42,8 @@
42#ifdef CONFIG_FEATURE_TAR_CREATE 42#ifdef CONFIG_FEATURE_TAR_CREATE
43 43
44/* Tar file constants */ 44/* Tar file constants */
45# define TAR_MAGIC "ustar" /* ustar and a null */
46# define TAR_VERSION " " /* Be compatible with GNU tar format */
47 45
48#define TAR_BLOCK_SIZE 512 46#define TAR_BLOCK_SIZE 512
49#define TAR_MAGIC_LEN 6
50#define TAR_VERSION_LEN 2
51 47
52/* POSIX tar Header Block, from POSIX 1003.1-1990 */ 48/* POSIX tar Header Block, from POSIX 1003.1-1990 */
53#define NAME_SIZE 100 49#define NAME_SIZE 100
@@ -208,15 +204,14 @@ static inline int writeTarHeader(struct TarBallInfo *tbInfo,
208 204
209 memset(&header, 0, size); 205 memset(&header, 0, size);
210 206
211 strncpy(header.name, header_name, sizeof(header.name)); 207 safe_strncpy(header.name, header_name, sizeof(header.name));
212 208
213 putOctal(header.mode, sizeof(header.mode), statbuf->st_mode); 209 putOctal(header.mode, sizeof(header.mode), statbuf->st_mode);
214 putOctal(header.uid, sizeof(header.uid), statbuf->st_uid); 210 putOctal(header.uid, sizeof(header.uid), statbuf->st_uid);
215 putOctal(header.gid, sizeof(header.gid), statbuf->st_gid); 211 putOctal(header.gid, sizeof(header.gid), statbuf->st_gid);
216 putOctal(header.size, sizeof(header.size), 0); /* Regular file size is handled later */ 212 putOctal(header.size, sizeof(header.size), 0); /* Regular file size is handled later */
217 putOctal(header.mtime, sizeof(header.mtime), statbuf->st_mtime); 213 putOctal(header.mtime, sizeof(header.mtime), statbuf->st_mtime);
218 strncpy(header.magic, TAR_MAGIC TAR_VERSION, 214 strcpy(header.magic, "ustar ");
219 TAR_MAGIC_LEN + TAR_VERSION_LEN);
220 215
221 /* Enter the user and group names (default to root if it fails) */ 216 /* Enter the user and group names (default to root if it fails) */
222 if (bb_getpwuid(header.uname, statbuf->st_uid, sizeof(header.uname)) == NULL) 217 if (bb_getpwuid(header.uname, statbuf->st_uid, sizeof(header.uname)) == NULL)