Isn't this bug filed against the wrong package? It is a patch against
apt-spy not apt-file.
regards
Kevin
Justin Pryzby writes:
> Package: apt-file
> Severity: wishlist
> Tags: patch
>
> Please include improved error checks in argument parsing code. Patch
> is attached which will error on arguments such as "-n 10FOOBAR".
>
> Also fixed is a spelling error and a grammar error.
>
> This patch would probably conflict with:
> apt-spy.inline-initializations, but I've included the necessary
> renaming of the variable BESTNUMBER here.
>
> Justin
> diff -ur apt-spy-3.1/main.c apt-spy-3.1.jp6/main.c
> --- apt-spy-3.1/main.c 2005-07-08 20:48:09.000000000 -0400
> +++ apt-spy-3.1.jp6/main.c 2005-07-09 14:28:52.000000000 -0400
> @@ -71,6 +71,7 @@
> /* Parse options... */
> while((c = getopt(argc, argv, "a:c:d:e:f:i:m:o:p:s:t:u:w:n:vh")) != -1)
> switch(c) {
> + char *end;
> /* Area to benchmark */
> case 'a':
> area = optarg;
> @@ -85,7 +86,13 @@
> break;
> /* Number of servers to benchmark */
> case 'e':
> - test_number = atoi(optarg);
> + test_number = strtol(optarg, &end, 10);
> + if (!*optarg || end!=optarg+strlen(optarg)) {
> + fprintf(stderr, "Error parsing number"
> + " of servers to be"
> + " benchmarked\n");
> + exit(1);
> + }
> break;
> /* File, relative to Debian base, to grab from server. */
> case 'f':
> @@ -111,9 +118,15 @@
> case 's':
> country_list = optarg;
> break;
> - /* Time to bencmark each server for. */
> + /* Time for which to benchmark each server. */
> case 't':
> - timeout = atoi(optarg);
> + timeout = strtol(optarg, &end, 10);
> + if (!*optarg || end!=optarg+strlen(optarg)) {
> + fprintf(stderr, "Error parsing server"
> + " benchmark time"
> + " interval\n");
> + exit(1);
> + }
> break;
> /* The URL we should update ourselves from */
>
> case 'u':
> @@ -126,7 +139,13 @@
> break;
> /* Number of servers to write in "top" server list */
> case 'n':
> - BESTNUMBER = atoi(optarg);
> + bestnumber = strtol(optarg, &end, 10);
> + if (!*optarg || end!=optarg+strlen(optarg)) {
> + fprintf(stderr, "Error parsing number"
> + " of best servers to"
> + " write\n");
> + exit(1);
> + }
> break;
> case 'v':
> version();
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]