mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 10:18:25 +00:00
Better error message when rejecting a TFTP transfer.
This commit is contained in:
20
src/tftp.c
20
src/tftp.c
@@ -367,7 +367,11 @@ void tftp_request(struct listener *listen, time_t now)
|
|||||||
!(mode = next(&p, end)) ||
|
!(mode = next(&p, end)) ||
|
||||||
(strcasecmp(mode, "octet") != 0 && strcasecmp(mode, "netascii") != 0))
|
(strcasecmp(mode, "octet") != 0 && strcasecmp(mode, "netascii") != 0))
|
||||||
{
|
{
|
||||||
len = tftp_err(ERR_ILL, packet, _("unsupported request from %s"), daemon->addrbuff, NULL);
|
if (!filename)
|
||||||
|
len = tftp_err(ERR_ILL, packet, _("empty filename in request from %s"), daemon->addrbuff, NULL);
|
||||||
|
else
|
||||||
|
len = tftp_err(ERR_ILL, packet, _("unsupported %srequest from %s"),
|
||||||
|
(ntohs(*((unsigned short *)packet)) == OP_WRQ) ? _("write ") : "", daemon->addrbuff);
|
||||||
is_err = 1;
|
is_err = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -755,14 +759,22 @@ static char *next(char **p, char *end)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If we don't do anything, don't write the the input/ouptut
|
||||||
|
buffer. This allows us to pass in safe read-only strings constants. */
|
||||||
static void sanitise(char *buf)
|
static void sanitise(char *buf)
|
||||||
{
|
{
|
||||||
unsigned char *q, *r;
|
unsigned char *q, *r;
|
||||||
|
|
||||||
for (q = r = (unsigned char *)buf; *r; r++)
|
for (q = r = (unsigned char *)buf; *r; r++)
|
||||||
if (isprint((int)*r))
|
if (isprint((int)*r))
|
||||||
*(q++) = *r;
|
{
|
||||||
*q = 0;
|
if (q != r)
|
||||||
|
*q = *r;
|
||||||
|
q++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (q != r)
|
||||||
|
*q = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAXMESSAGE 500 /* limit to make packet < 512 bytes and definitely smaller than buffer */
|
#define MAXMESSAGE 500 /* limit to make packet < 512 bytes and definitely smaller than buffer */
|
||||||
|
|||||||
Reference in New Issue
Block a user