git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Usermode/libposix - add stubbed getopt
[tpg/acess2.git]
/
Tools
/
NetTest_Runner
/
stack.c
diff --git
a/Tools/NetTest_Runner/stack.c
b/Tools/NetTest_Runner/stack.c
index
7d5e261
..
1a224e8
100644
(file)
--- a/
Tools/NetTest_Runner/stack.c
+++ b/
Tools/NetTest_Runner/stack.c
@@
-53,6
+53,7
@@
void Stack_AddInterface(const char *Name, int AddrType, const void *Addr, int Ma
break;
default:
assert(AddrType == 4);
break;
default:
assert(AddrType == 4);
+ fprintf(stderr, "Stack_AddInterface: Bad address type %i\n", AddrType);
exit(1);
}
}
exit(1);
}
}
@@
-63,14
+64,24
@@
void Stack_AddRoute(int Type, const void *Network, int MaskBits, const void *Nex
void Stack_AddArg(const char *Fmt, ...)
{
void Stack_AddArg(const char *Fmt, ...)
{
+ if( giNumStackArgs == MAX_ARGS ) {
+ fprintf(stderr, "ERROR: Too many arguments to stack, %i max\n", MAX_ARGS);
+ return ;
+ }
va_list args;
va_list args;
+
va_start(args, Fmt);
size_t len = vsnprintf(NULL, 0, Fmt, args);
va_end(args);
va_start(args, Fmt);
size_t len = vsnprintf(NULL, 0, Fmt, args);
va_end(args);
+
char *arg = malloc(len+1);
char *arg = malloc(len+1);
+ assert(arg);
+
va_start(args, Fmt);
vsnprintf(arg, len+1, Fmt, args);
va_end(args);
va_start(args, Fmt);
vsnprintf(arg, len+1, Fmt, args);
va_end(args);
+
+ assert( arg[len] == '\0' );
gasStackArgs[giNumStackArgs++] = arg;
}
gasStackArgs[giNumStackArgs++] = arg;
}
@@
-123,6
+134,10
@@
void Stack_Kill(void)
kill(giStack_PID, SIGTERM);
giStack_PID = 0;
}
kill(giStack_PID, SIGTERM);
giStack_PID = 0;
}
+
+ for( int i = 1; i < giNumStackArgs; i ++ )
+ free(gasStackArgs[i]);
+ giNumStackArgs = 1;
}
int Stack_SendCommand(const char *Fmt, ...)
}
int Stack_SendCommand(const char *Fmt, ...)
UCC
git Repository :: git.ucc.asn.au