Commit fb9b1d0f authored by osdl.net!shemminger's avatar osdl.net!shemminger

fix potential memory corruption

(Logical change 1.136)
parent b209eda9
2005-02-07 Jean-Marc Ranger <jmranger@sympatico.ca>
* need to call getline() with null for first usage
* don't overwrite const arg
2005-02-07 Stephen Hemminger <shemminger@linux.site> 2005-02-07 Stephen Hemminger <shemminger@linux.site>
* Add experimental distribution * Add experimental distribution
......
...@@ -66,9 +66,9 @@ struct ipx_addr { ...@@ -66,9 +66,9 @@ struct ipx_addr {
extern __u32 get_addr32(const char *name); extern __u32 get_addr32(const char *name);
extern int get_addr_1(inet_prefix *dst, const char *arg, int family); extern int get_addr_1(inet_prefix *dst, const char *arg, int family);
extern int get_prefix_1(inet_prefix *dst, const char *arg, int family); extern int get_prefix_1(inet_prefix *dst, char *arg, int family);
extern int get_addr(inet_prefix *dst, const char *arg, int family); extern int get_addr(inet_prefix *dst, const char *arg, int family);
extern int get_prefix(inet_prefix *dst, const char *arg, int family); extern int get_prefix(inet_prefix *dst, char *arg, int family);
extern int get_integer(int *val, const char *arg, int base); extern int get_integer(int *val, const char *arg, int base);
extern int get_unsigned(unsigned *val, const char *arg, int base); extern int get_unsigned(unsigned *val, const char *arg, int base);
......
...@@ -200,7 +200,7 @@ int get_addr_1(inet_prefix *addr, const char *name, int family) ...@@ -200,7 +200,7 @@ int get_addr_1(inet_prefix *addr, const char *name, int family)
return 0; return 0;
} }
int get_prefix_1(inet_prefix *dst, const char *arg, int family) int get_prefix_1(inet_prefix *dst, char *arg, int family)
{ {
int err; int err;
unsigned plen; unsigned plen;
...@@ -222,6 +222,7 @@ int get_prefix_1(inet_prefix *dst, const char *arg, int family) ...@@ -222,6 +222,7 @@ int get_prefix_1(inet_prefix *dst, const char *arg, int family)
slash = strchr(arg, '/'); slash = strchr(arg, '/');
if (slash) if (slash)
*slash = 0; *slash = 0;
err = get_addr_1(dst, arg, family); err = get_addr_1(dst, arg, family);
if (err == 0) { if (err == 0) {
switch(dst->family) { switch(dst->family) {
...@@ -262,7 +263,7 @@ int get_addr(inet_prefix *dst, const char *arg, int family) ...@@ -262,7 +263,7 @@ int get_addr(inet_prefix *dst, const char *arg, int family)
return 0; return 0;
} }
int get_prefix(inet_prefix *dst, const char *arg, int family) int get_prefix(inet_prefix *dst, char *arg, int family)
{ {
if (family == AF_PACKET) { if (family == AF_PACKET) {
fprintf(stderr, "Error: \"%s\" may be inet prefix, but it is not allowed in this context.\n", arg); fprintf(stderr, "Error: \"%s\" may be inet prefix, but it is not allowed in this context.\n", arg);
......
...@@ -56,7 +56,7 @@ static int get_distribution(const char *type, __s16 *data) ...@@ -56,7 +56,7 @@ static int get_distribution(const char *type, __s16 *data)
int n; int n;
long x; long x;
size_t len; size_t len;
char *line; char *line = NULL;
char name[128]; char name[128];
snprintf(name, sizeof(name), "/usr/lib/tc/%s.dist", type); snprintf(name, sizeof(name), "/usr/lib/tc/%s.dist", type);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment