Partly back out previous - do not free the linebuffer while still having
pointers into parts of it. Add a comment explaining why we prefer to leak memory ;-) Fixes PR bin/30174.
This commit is contained in:
parent
b2536b11a5
commit
7b4b4385c1
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: pppoectl.c,v 1.18 2005/02/19 20:50:26 christos Exp $ */
|
/* $NetBSD: pppoectl.c,v 1.19 2005/05/10 06:49:10 martin Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 Joerg Wunsch
|
* Copyright (c) 1997 Joerg Wunsch
|
||||||
@ -31,7 +31,7 @@
|
|||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
|
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
__RCSID("$NetBSD: pppoectl.c,v 1.18 2005/02/19 20:50:26 christos Exp $");
|
__RCSID("$NetBSD: pppoectl.c,v 1.19 2005/05/10 06:49:10 martin Exp $");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -300,7 +300,17 @@ main(int argc, char **argv)
|
|||||||
FPARSELN_UNESCALL)) != NULL) {
|
FPARSELN_UNESCALL)) != NULL) {
|
||||||
if (line[0] != '\0')
|
if (line[0] != '\0')
|
||||||
pppoectl_argument(line);
|
pppoectl_argument(line);
|
||||||
free(line);
|
/*
|
||||||
|
* We do not free(line) here, because we
|
||||||
|
* still have references to parts of the
|
||||||
|
* string collected in the various ioctl
|
||||||
|
* argument structures (and need those).
|
||||||
|
* Yes, this is a memory leak.
|
||||||
|
* We could copy the partial strings instead,
|
||||||
|
* and free those later - but this is a one-shot
|
||||||
|
* program and memory will be freed at process
|
||||||
|
* exit time anyway.
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user