Hello,
giuseppe wrote a patch for 1.10.1.beta1. Full report can be viewed here:
http://bugs.debian.org/319088
Weitergeleitete Nachricht
Von: giuseppe bonacci [EMAIL PROTECTED]
Antwort an: giuseppe bonacci [EMAIL PROTECTED],
[EMAIL PROTECTED]
An: Debian Bug Tracking System [EMAIL PROTECTED]
Betreff: Bug#319088: wget: don't rely on exactly one blank char
between size and month
Datum: Wed, 20 Jul 2005 10:26:20 +0200
Package: wget
Version: 1.10-3+1.10.1beta1
Followup-For: Bug #319088
A better patch is the following, that drops the assumption that there
is exactly one blank char between size and month (implicit in the
statement char *t = tok - 2;).
As far as I know, strtok() modifies the string
1234 aaa bbb@ (where @ stands for \0, for clarity)
so that when tok points to aaa the string looks like
1234@ aaa@ bbb@,
and (tok - 2) points to , which is not useful for backtracking.
I think the best way to access the previous token is ... keeping a pointer
to it.
g.b.
--- wget-1.10/src/ftp-ls.c.orig 2005-05-12 18:24:33.0 +0200
+++ wget-1.10/src/ftp-ls.c2005-07-20 09:53:30.206791032 +0200
@@ -110,7 +110,7 @@
struct tm timestruct, *tnow;
time_t timenow;
- char *line, *tok; /* tokenizer */
+ char *line, *tok, *ptok; /* tokenizer */
struct fileinfo *dir, *l, cur; /* list creation */
fp = fopen (file, rb);
@@ -201,7 +201,9 @@
This tactic is quite dubious when it comes to
internationalization issues (non-English month names), but it
works for now. */
- while ((tok = strtok (NULL, )) != NULL)
+ ptok = line;
+ while (ptok = tok,
+ (tok = strtok(NULL, )) != NULL)
{
--next;
if (next 0) /* a month name was not encountered */
@@ -217,9 +219,7 @@
/* Back up to the beginning of the previous token
and parse it with str_to_wgint. */
- char *t = tok - 2;
- while (t line ISDIGIT (*t))
- --t;
+ char *t = ptok;
if (t == line)
{
/* Something has gone wrong during parsing. */
-- System Information:
Debian Release: testing/unstable
APT prefers testing
APT policy: (500, 'testing')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.8-2-686-smp
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Versions of packages wget depends on:
ii libc6 2.3.2.ds1-22 GNU C Library: Shared libraries
an
ii libssl0.9.7 0.9.7e-3 SSL shared libraries
wget recommends no packages.
-- no debconf information
--
Noèl Köthe noel debian.org
Debian GNU/Linux, www.debian.org
signature.asc
Description: This is a digitally signed message part