From: dalibor@immd3.INformatik.uni-erlangen.DE (Stefan Dalibor)
Subject: bug-report for finger-1.37
Organization: GNUs Not Usenet
Distribution: gnu
Date: Thu, 19 Nov 1992 19:58:37 GMT

Hi,
we just completed installation of finger-1.37. We found 1 bug in src/fingerd.c
and had some difficulties during the installation due to differences between
the source and the documentation (and our misunderstanding of the latter :-).
Filenames with extensions `-dist' refer to the files of the original distri-
bution.
(Scroll through items by looking for [1-4] at beginning of line.)

1. Bug in src/finger.c:
    The fingerd master-server crashes when started with the (undocumented?)
    option '-i <secs>'.
    Reason: Missing colon (for option -i) in the argument string to
            getopt_long() in line 148 of fingerd.c; furthermore we think
            it should be checked that the user specified an additional
            argument before trying to convert it with atoi(). The following
            works for us:

faui30a:~LS/finger-1.37/src(0)5 diff -c fingerd.c fingerd.c-dist 
*** fingerd.c   Tue Nov 17 10:46:42 1992
--- fingerd.c-dist      Tue Nov 17 10:41:53 1992
***************
*** 145,151 ****
    default_error_handling (argv[0]);
  
    /* Parse arguments. */
!   while ((optc = getopt_long (argc, argv, "datfi:", longopts, NULL)) >= 0)
      switch (optc)
        {
        case 'd':
--- 145,151 ----
    default_error_handling (argv[0]);
  
    /* Parse arguments. */
!   while ((optc = getopt_long (argc, argv, "datfi", longopts, NULL)) >= 0)
      switch (optc)
        {
        case 'd':
***************
*** 167,173 ****
        break;
  
        case 'i':
!       if ((optarg == NULL) || (time_between_polls = atoi (optarg)) < 0)
          time_between_polls = DEFAULT_POLL_INTERVAL;
        break;
  
--- 167,173 ----
        break;
  
        case 'i':
!       if ((time_between_polls = atoi (optarg)) < 0)
          time_between_polls = DEFAULT_POLL_INTERVAL;
        break;

2. It took us some time (actually we had to use gdb :-) to find out that
   the finger client-program uses it's argv[0] as the name of the service
   by (under? - sorry for my bad english!) which it tries to contact the
   finger-server.
   We think that should be pointed out more clearly in the documentation / in-
   stallation-guideline. We could imagine more people wanting to call gnus's
   finger-program as gnu-finger.
   Perhaps BASENAME_IS_SERVICE should not be defined by default in config.h?

3. And here the rest of the usual bug-report informations:
   Program version: finger-1.37 from prep.ai.mit.edu
   Hardware: Sun3 and Sun4
   Operating System: SunOs 4.1.2
   Compiler: Sun's cc and gcc version 2.2
   Arguments to configure:
      none on sun4
      CC='cc -O' on sun3 (broken gcc, too lazy to install correct version :-)
   Changes to configuration files:

    faui30a:~LS/finger-1.37(0)14 diff config.h config.h-dist 
    62c62
    < #define CHECK_OWNER_FINGERRC
    ---
    > /* #define CHECK_OWNER_FINGERRC */
    66c66
    < #define CHECK_RDONLY_FINGERRC
    ---
    > /* #define CHECK_RDONLY_FINGERRC */
    89c89
    < #define FINGERRC_SHELL "/bin/sh"
    ---
    > /* #define FINGERRC_SHELL "/bin/sh" */
    95c95
    < #define DEFAULT_POLL_INTERVAL 300
    ---
    > #define DEFAULT_POLL_INTERVAL 120
    98,100c98
    < #ifdef sparc
    < #define HAVE_X11
    < #endif
    ---
    > /* #define HAVE_X11 */

   Changes to source code: see 1. above
   Changes to installation procedures: none besides adaption to local pathnames
   Network configuration: see hardware/operating system/compiler above
   Installation problems: see 2. above

4. Looking forward to future versions of finger (and other gnu programs)!

Bye,
Stefan

Newsgroups: gnu.utils.bug