Index: src/create.c =================================================================== --- src/create.c +++ src/create.c 2010-11-27 14:49:03.000000000 +0100 @@ -562,8 +562,9 @@ GNAME_TO_CHARS (tmpname, header->header.gname); free (tmpname); - strcpy (header->buffer + offsetof (struct posix_header, magic), - OLDGNU_MAGIC); + strncpy (header->header.magic, OLDGNU_MAGIC, sizeof(header->header.magic)); + strncpy (header->header.version, OLDGNU_MAGIC+sizeof(header->header.magic), + sizeof(header->header.version)); header->header.typeflag = type; finish_header (st, header, -1); @@ -898,10 +899,14 @@ break; case OLDGNU_FORMAT: - case GNU_FORMAT: /*FIXME?*/ - /* Overwrite header->header.magic and header.version in one blow. */ - strcpy (header->buffer + offsetof (struct posix_header, magic), - OLDGNU_MAGIC); + case GNU_FORMAT: + + /* OLDGNU_MAGIC is string with 7 chars + NULL */ + strncpy (header->header.magic, OLDGNU_MAGIC, + sizeof(header->header.magic)); + strncpy (header->header.version, + OLDGNU_MAGIC+sizeof(header->header.magic), + sizeof(header->header.version)); break; case POSIX_FORMAT: