summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot2012-05-07 22:42:36 +0200
committerroot2012-05-07 22:42:36 +0200
commit18574554181a31e094c33feb2be849f74fd06800 (patch)
tree60dea3d7ca995c3a7eb31adf72acb9a93da50952
parent[KERNEL] Notify if new release available (sysfs) (diff)
downloaddnbd3-18574554181a31e094c33feb2be849f74fd06800.tar.gz
dnbd3-18574554181a31e094c33feb2be849f74fd06800.tar.xz
dnbd3-18574554181a31e094c33feb2be849f74fd06800.zip
[KERNEL] Null hostname if connection was not successful
-rw-r--r--src/kernel/net.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/kernel/net.c b/src/kernel/net.c
index 838e18b..684ceb6 100644
--- a/src/kernel/net.c
+++ b/src/kernel/net.c
@@ -38,11 +38,13 @@ void dnbd3_net_connect(dnbd3_device_t *dev)
if (!req0 || !req1)
{
printk("FATAL: Kmalloc failed.\n");
+ memset(dev->cur_server.host, '\0', sizeof(dev->cur_server.host));
return;
}
if (!dev->cur_server.host || !dev->cur_server.port || (dev->vid == 0))
{
printk("FATAL: Host, port or vid not set.\n");
+ memset(dev->cur_server.host, '\0', sizeof(dev->cur_server.host));
return;
}
if (dev->cur_server.sock)
@@ -58,6 +60,7 @@ void dnbd3_net_connect(dnbd3_device_t *dev)
{
printk("ERROR: Couldn't create socket.\n");
dev->cur_server.sock = NULL;
+ memset(dev->cur_server.host, '\0', sizeof(dev->cur_server.host));
return;
}
kernel_setsockopt(dev->cur_server.sock, SOL_SOCKET, SO_SNDTIMEO, (char *) &timeout, sizeof(timeout));
@@ -70,6 +73,7 @@ void dnbd3_net_connect(dnbd3_device_t *dev)
{
printk("ERROR: Couldn't connect to host %s:%s\n", dev->cur_server.host, dev->cur_server.port);
dev->cur_server.sock = NULL;
+ memset(dev->cur_server.host, '\0', sizeof(dev->cur_server.host));
return;
}
@@ -143,6 +147,7 @@ void dnbd3_net_disconnect(dnbd3_device_t *dev)
{
sock_release(dev->cur_server.sock);
dev->cur_server.sock = NULL;
+ memset(dev->cur_server.host, '\0', sizeof(dev->cur_server.host));
}
}