- snprintf(host, 257, "%d.%d.%d.%d.%s",
- ip & 0xff, (ip >> 8) & 0xff, (ip >> 16) & 0xff, (ip >> 24) & 0xff,
- rbl);
+ int len;
+
+ len = snprintf(host, 257, "%d.%d.%d.%d.%s.",
+ ip & 0xff, (ip >> 8) & 0xff, (ip >> 16) & 0xff, (ip >> 24) & 0xff,
+ rbl);
+ if (len >= (int)sizeof(host))
+ return RBL_ERROR;
+ if (host[len - 2] == '.')
+ host[len - 1] = '\0';