45 lines
1.2 KiB
Diff
45 lines
1.2 KiB
Diff
|
Resolves: #1485943
|
||
|
|
||
|
--- a/tftpd/tftpd.c 2017-08-28 09:12:11.681299000 +0200
|
||
|
+++ b/tftpd/tftpd.c 2017-08-28 13:30:03.109312000 +0200
|
||
|
@@ -1388,24 +1388,25 @@
|
||
|
return strlen(p);
|
||
|
|
||
|
case 'x':
|
||
|
- if (output) {
|
||
|
- if (from.sa.sa_family == AF_INET) {
|
||
|
+ if (from.sa.sa_family == AF_INET) {
|
||
|
+ if (output) {
|
||
|
sprintf(output, "%08lX",
|
||
|
(unsigned long)ntohl(from.si.sin_addr.s_addr));
|
||
|
- l = 8;
|
||
|
+ }
|
||
|
+ l = 8;
|
||
|
#ifdef HAVE_IPV6
|
||
|
- } else {
|
||
|
- unsigned char *c = (unsigned char *)SOCKADDR_P(&from);
|
||
|
- p = tb;
|
||
|
- for (l = 0; l < 16; l++) {
|
||
|
- sprintf(p, "%02X", *c);
|
||
|
- c++;
|
||
|
- p += 2;
|
||
|
- }
|
||
|
+ } else {
|
||
|
+ unsigned char *c = (unsigned char *)SOCKADDR_P(&from);
|
||
|
+ p = tb;
|
||
|
+ for (l = 0; l < 16; l++) {
|
||
|
+ sprintf(p, "%02X", *c);
|
||
|
+ c++;
|
||
|
+ p += 2;
|
||
|
+ }
|
||
|
+ if (output)
|
||
|
strcpy(output, tb);
|
||
|
- l = strlen(tb);
|
||
|
+ l = strlen(tb);
|
||
|
#endif
|
||
|
- }
|
||
|
}
|
||
|
return l;
|
||
|
|
||
|
|