projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
code cleanup (using new and already existing structures)
[rocksndiamonds.git]
/
src
/
netserv.c
diff --git
a/src/netserv.c
b/src/netserv.c
index eef7aa111e43466b56be71b44afa311e259b3c7f..4c09803ff0e34939d57a6644d64ea12b103e2bfa 100644
(file)
--- a/
src/netserv.c
+++ b/
src/netserv.c
@@
-107,7
+107,7
@@
int putNetworkString(byte *ptr, char *s)
return strlen(s) + 1;
}
return strlen(s) + 1;
}
-struct NetworkBuffer *newNetworkBuffer()
+struct NetworkBuffer *newNetworkBuffer(
void
)
{
struct NetworkBuffer *new = checked_calloc(sizeof(struct NetworkBuffer));
{
struct NetworkBuffer *new = checked_calloc(sizeof(struct NetworkBuffer));
@@
-187,6
+187,14
@@
static void increaseNetworkBuffer(struct NetworkBuffer *nb, int additional_size)
int receiveNetworkBufferBytes(struct NetworkBuffer *nb, TCPsocket socket,
int num_bytes)
{
int receiveNetworkBufferBytes(struct NetworkBuffer *nb, TCPsocket socket,
int num_bytes)
{
+ if (num_bytes > MAX_PACKET_SIZE)
+ {
+ Error(ERR_NETWORK_SERVER, "protocol error: invalid packet size %d",
+ num_bytes);
+
+ return -1;
+ }
+
if (nb->pos + num_bytes > nb->max_size)
increaseNetworkBuffer(nb, num_bytes);
if (nb->pos + num_bytes > nb->max_size)
increaseNetworkBuffer(nb, num_bytes);
@@
-816,7
+824,7
@@
static void Handle_OP_LEVEL_FILE(struct NetworkServerPlayerInfo *player)
SendNetworkBufferToAllButOne(write_buffer, player);
}
SendNetworkBufferToAllButOne(write_buffer, player);
}
-void ExitNetworkServer(int exit_value)
+
static
void ExitNetworkServer(int exit_value)
{
Error(ERR_NETWORK_SERVER, "exiting network server");
{
Error(ERR_NETWORK_SERVER, "exiting network server");