Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Nov 1995 12:50:50 +0100 (MET)
From:      grog@lemis.de (Greg Lehey)
To:        hackers@freebsd.org (FreeBSD Hackers)
Subject:   mountd(8) performs illegal free()
Message-ID:  <199511171150.MAA25180@allegro.lemis.de>

next in thread | raw e-mail | index | archive | help
In the last few -current releases, I've had the message

  Malloc warning: free(): junk pointer (too high)

at system startup.  It comes from mountd, and it's wrong: the address
being freed is in the text segment.

Is this intentional?  Should free(3) even try to accept this sort of
behaviour?  In any case, it's easy enough to fix:

--- mountd.c    1995/06/27 11:06:19     1.9
+++ mountd.c    1995/11/17 11:44:06
@@ -885,7 +885,8 @@
                        hpe = (struct hostent *)malloc(sizeof(struct hostent));
                        if (hpe == (struct hostent *)NULL)
                                out_of_mem();
-                       hpe->h_name = "Default";
+                       hpe->h_name = malloc (16);
+                       strcpy (hpe->h_name, "Default");
                        hpe->h_addrtype = AF_INET;
                        hpe->h_length = sizeof (u_long);
                        hpe->h_addr_list = (char **)NULL;


Greg




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199511171150.MAA25180>