]> git.llucax.com Git - software/mutt-debian.git/blob - debian/patches/patch-1.5.3.Md.etc_mailname_gethostbyname
mutt (1.5.9-2sarge2) stable-security; urgency=high
[software/mutt-debian.git] / debian / patches / patch-1.5.3.Md.etc_mailname_gethostbyname
1 diff -u mutt-1.5.3.orig/PATCHES mutt-1.5.3/PATCHES
2 --- mutt-1.5.3.orig/PATCHES     2002-12-17 10:47:20.000000000 +0100
3 +++ mutt-1.5.3/PATCHES  2003-01-14 18:21:16.000000000 +0100
4 @@ -1,0 +1 @@
5 +Debian.Md.etc_mailname_gethostbyname
6 diff -u mutt-1.5.3.orig/init.c mutt-1.5.3/init.c
7 --- mutt-1.5.3.orig/init.c      2002-12-11 16:13:49.000000000 +0100
8 +++ mutt-1.5.3/init.c   2003-01-14 18:27:54.000000000 +0100
9 @@ -51,6 +51,7 @@
10  #include <unistd.h>
11  #include <string.h>
12  #include <sys/utsname.h>
13 +#include <netdb.h>
14  #include <errno.h>
15  #include <sys/wait.h>
16  
17 @@ -1748,6 +1749,31 @@
18    return 0;
19  }
20  
21 +int getmailname(char *s, size_t l)
22 +{
23 +    FILE *f;
24 +    char tmp[512];
25 +    char *p = tmp;
26 +
27 +    if ((f = fopen ("/etc/mailname", "r")) == NULL)
28 +       return (-1);
29 +
30 +    if (fgets (tmp, 510, f) != NULL) {
31 +      while (*p && !ISSPACE(*p) && l > 0) {
32 +       *s++ = *p++;
33 +       l--;
34 +      }
35 +      if (*(s-1) == '.')
36 +       s--;
37 +      *s = 0;
38 +
39 +      fclose (f);
40 +      return 0;
41 +    }
42 +    fclose (f);
43 +    return (-1);
44 +}
45 +
46  void mutt_init (int skip_sys_rc, LIST *commands)
47  {
48    struct passwd *pw;
49 @@ -1816,10 +1842,25 @@
50      Hostname = mutt_substrdup (utsname.nodename, p);
51      p++;
52      strfcpy (buffer, p, sizeof (buffer)); /* save the domain for below */
53 +    Fqdn = safe_strdup (utsname.nodename);
54    }
55    else
56      Hostname = safe_strdup (utsname.nodename);
57  
58 +  /* if /etc/mailname exists use it and ignore everything else */
59 +  if (getmailname(buffer, sizeof (buffer)) != -1)
60 +      Fqdn = safe_strdup(buffer);
61 +
62 +  /* try gethostbyname(3) if /etc/mailname does not exists */
63 +  if (!Fqdn) {
64 +    struct hostent *hp;
65 +
66 +    if ((hp = gethostbyname(Hostname)))
67 +       Fqdn = safe_strdup(hp->h_name);
68 +  }
69 +
70 +  if (Fqdn) {
71 +  } else
72  #ifndef DOMAIN
73  #define DOMAIN buffer
74    if (!p && getdnsdomainname (buffer, sizeof (buffer)) == -1)