SHA256
3
0
forked from pool/tar
tar/tar-1.22-fortifysourcessigabrt.patch
OBS User autobuild b408088a50 Accepting request 29082 from Base:System
Copy from Base:System/tar based on submit request 29082 from user msmeissn

OBS-URL: https://build.opensuse.org/request/show/29082
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/tar?expand=0&rev=19
2010-01-11 15:52:22 +00:00

53 lines
2.0 KiB
Diff

Index: tar-1.21/src/create.c
===================================================================
--- tar-1.21.orig/src/create.c
+++ tar-1.21/src/create.c
@@ -532,8 +532,8 @@ start_private_header (const char *name,
GID_TO_CHARS (getgid (), header->header.gid);
MAJOR_TO_CHARS (0, header->header.devmajor);
MINOR_TO_CHARS (0, header->header.devminor);
- strncpy (header->header.magic, TMAGIC, TMAGLEN);
- strncpy (header->header.version, TVERSION, TVERSLEN);
+ memcpy (header->header.magic, TMAGIC, TMAGLEN);
+ memcpy (header->header.version, TVERSION, TVERSLEN);
return header;
}
@@ -577,7 +577,10 @@ write_gnu_long_link (struct tar_stat_inf
GNAME_TO_CHARS (tmpname, header->header.gname);
free (tmpname);
- strcpy (header->header.magic, OLDGNU_MAGIC);
+ /* OLDGNU_MAGIC is string with 7 chars + NULL */
+ memcpy (header->header.magic, OLDGNU_MAGIC, sizeof(header->header.magic));
+ memcpy (header->header.version, OLDGNU_MAGIC+sizeof(header->header.magic),
+ sizeof(header->header.version));
header->header.typeflag = type;
finish_header (st, header, -1);
@@ -907,15 +910,19 @@ start_header (struct tar_stat_info *st)
break;
case OLDGNU_FORMAT:
- case GNU_FORMAT: /*FIXME?*/
- /* Overwrite header->header.magic and header.version in one blow. */
- strcpy (header->header.magic, OLDGNU_MAGIC);
+ case GNU_FORMAT:
+ /* OLDGNU_MAGIC is string with 7 chars + NULL */
+ memcpy (header->header.magic, OLDGNU_MAGIC,
+ sizeof(header->header.magic));
+ memcpy (header->header.version,
+ OLDGNU_MAGIC+sizeof(header->header.magic),
+ sizeof(header->header.version));
break;
case POSIX_FORMAT:
case USTAR_FORMAT:
- strncpy (header->header.magic, TMAGIC, TMAGLEN);
- strncpy (header->header.version, TVERSION, TVERSLEN);
+ memcpy (header->header.magic, TMAGIC, TMAGLEN);
+ memcpy (header->header.version, TVERSION, TVERSLEN);
break;
default: