Skip to content

Commit 845d443

Browse files
Add more error handling
1 parent 0ade9d8 commit 845d443

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/mod/share.mod/share.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
#include <errno.h>
2828
#include "src/mod/module.h"
29+
#include <resolv.h>
2930

3031
#include <netinet/in.h>
3132
#include <arpa/inet.h>
@@ -1228,11 +1229,11 @@ static void share_userfileq(int idx, char *par)
12281229
/* New user file share mechanism via multiplex over already existing bot link
12291230
* ur <len>
12301231
*/
1231-
#include <resolv.h>
12321232
static void share_ufsend2(int idx, char *par)
12331233
{
12341234
int len;
12351235
unsigned char *buf;
1236+
ssize_t i;
12361237

12371238
len = strlen(par);
12381239
debug2("share: share_ufsend2(): start: par = >%s< len = %i", par, len);
@@ -1248,7 +1249,13 @@ static void share_ufsend2(int idx, char *par)
12481249
putlog(LOG_BOTS, "*", "share: share_ufsend2(): error mkstemp(): %s", strerror(errno));
12491250
return;
12501251
}
1251-
write(fd, buf, len); /* TODO: error handling */
1252+
if ((i = write(fd, buf, len)) != len) {
1253+
if (i < 0)
1254+
putlog(LOG_MISC, "*", "Share error: sare_ufsend2(): write(): %s", strerror(errno));
1255+
else
1256+
putlog(LOG_MISC, "*", "share error: sare_ufsend2(): write(): Wrote %ld bytes instead of %i bytes.", (long) i, len);
1257+
return;
1258+
}
12521259
close(fd);
12531260
dcc[idx].u.xfer->filename = template;
12541261
/* The new method has got no extra dcc[] for the file transfer,

0 commit comments

Comments
 (0)