Date: Wed, 20 Mar 1996 16:41:15 +0200 (EET) From: Juha Inkari <inkari@snakemail.hut.fi> To: freebsd-current@freebsd.org Subject: GNU tar 1.11.2 Message-ID: <199603201441.QAA05944@lk-hp-20.hut.fi>
next in thread | raw e-mail | index | archive | help
I just found, that a command: tar -C /tmp -xsf foo.tar drops core. This is because tar seems to assume, that when s flag is used, there are more arguments to come, and ends up calling strlen(0) (see patch below). I looked up GNU tar 1.11.8 (dated May 1995), and the code indeed seems to have changed a bit. It doesn't work correctly either, but gives a "Missing file name after -C". However, is anyone considered bumping the tar version from 1.11.2 (March 1993) to 1.11.8 for any reason whatever ? ---------------------------------------------- *** tar.orig/tar.c Thu Oct 26 12:59:43 1995 --- tar/tar.c Wed Mar 20 15:51:04 1996 *************** *** 1010,1027 **** } namebuf->change_dir = chdir_name; } ! namebuf->length = strlen (p); ! if (namebuf->length >= namelen) ! { ! namebuf = (struct name *) ck_realloc (namebuf, sizeof (struct name) + namebuf->length); ! namelen = namebuf->length; ! } ! strncpy (namebuf->name, p, namebuf->length); ! namebuf->name[namebuf->length] = 0; ! namebuf->next = (struct name *) NULL; ! namebuf->found = 0; ! namelist = namebuf; ! namelast = namelist; } return; } --- 1010,1030 ---- } namebuf->change_dir = chdir_name; } ! if (p) ! { ! namebuf->length = strlen (p); ! if (namebuf->length >= namelen) ! { ! namebuf = (struct name *) ck_realloc (namebuf, sizeof (struct name) + namebuf->length); ! namelen = namebuf->length; ! } ! strncpy (namebuf->name, p, namebuf->length); ! namebuf->name[namebuf->length] = 0; ! namebuf->next = (struct name *) NULL; ! namebuf->found = 0; ! namelist = namebuf; ! namelast = namelist; ! } } return; } ----------------------------------------------
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199603201441.QAA05944>