summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2002-04-23 18:52:39 +0000
committerphk <phk@FreeBSD.org>2002-04-23 18:52:39 +0000
commit6a45f19d900c22a97eb40dfe73ba95fe0a22fe6e (patch)
treeaea637c3f555b5e97d31897e2e01d3c9c78b6faa
parent834fdde07aa3e3bd0fa935c43bf688eb6d0850de (diff)
downloadFreeBSD-src-6a45f19d900c22a97eb40dfe73ba95fe0a22fe6e.zip
FreeBSD-src-6a45f19d900c22a97eb40dfe73ba95fe0a22fe6e.tar.gz
Don't free(9) a pointer which has been modified.
Chapeau de pointe: mux
-rw-r--r--sys/amd64/amd64/autoconf.c13
-rw-r--r--sys/i386/i386/autoconf.c13
2 files changed, 14 insertions, 12 deletions
diff --git a/sys/amd64/amd64/autoconf.c b/sys/amd64/amd64/autoconf.c
index 60b3725..85808d5 100644
--- a/sys/amd64/amd64/autoconf.c
+++ b/sys/amd64/amd64/autoconf.c
@@ -290,31 +290,32 @@ hwaddr_to_sockaddr(char *ev, struct sockaddr_dl *sa)
static int
decode_nfshandle(char *ev, u_char *fh)
{
- u_char *cp;
+ u_char *cp, *ep;
int len, val;
- if ((cp = getenv(ev)) == NULL)
+ ep = cp = getenv(ev);
+ if (cp == NULL)
return(0);
if ((strlen(cp) < 2) || (*cp != 'X')) {
- freeenv(cp);
+ freeenv(ep);
return (0);
}
len = 0;
cp++;
for (;;) {
if (*cp == 'X') {
- freeenv(cp);
+ freeenv(ep);
return(len);
}
if ((sscanf(cp, "%2x", &val) != 1) || (val > 0xff)) {
- freeenv(cp);
+ freeenv(ep);
return(0);
}
*(fh++) = val;
len++;
cp += 2;
if (len > NFSX_V2FH) {
- freeenv(cp);
+ freeenv(ep);
return(0);
}
}
diff --git a/sys/i386/i386/autoconf.c b/sys/i386/i386/autoconf.c
index 60b3725..85808d5 100644
--- a/sys/i386/i386/autoconf.c
+++ b/sys/i386/i386/autoconf.c
@@ -290,31 +290,32 @@ hwaddr_to_sockaddr(char *ev, struct sockaddr_dl *sa)
static int
decode_nfshandle(char *ev, u_char *fh)
{
- u_char *cp;
+ u_char *cp, *ep;
int len, val;
- if ((cp = getenv(ev)) == NULL)
+ ep = cp = getenv(ev);
+ if (cp == NULL)
return(0);
if ((strlen(cp) < 2) || (*cp != 'X')) {
- freeenv(cp);
+ freeenv(ep);
return (0);
}
len = 0;
cp++;
for (;;) {
if (*cp == 'X') {
- freeenv(cp);
+ freeenv(ep);
return(len);
}
if ((sscanf(cp, "%2x", &val) != 1) || (val > 0xff)) {
- freeenv(cp);
+ freeenv(ep);
return(0);
}
*(fh++) = val;
len++;
cp += 2;
if (len > NFSX_V2FH) {
- freeenv(cp);
+ freeenv(ep);
return(0);
}
}
OpenPOWER on IntegriCloud