follow up in platform.h to set the #ifdef, but the workaround works for
everybody, so...
while(isspace(*cmdstr)) cmdstr++;
length = strcspn(cmdstr, semicolon_whitespace);
if (length) {
- sed_cmd->string = strndup(cmdstr, length);
+ sed_cmd->string = bb_xstrndup(cmdstr, length);
cmdstr += length;
}
}
#include <features.h>
#include <sys/types.h>
#include <sys/socket.h>
-#include <arpa/inet.h>
+#include <netinet/in.h>
extern const char bb_INET_default[]; /* = "default" */
#include <stdint.h>
#include <netdb.h>
+#include <netinet/in.h>
#include <features.h>
int r;
char *string_ptr;
+#ifdef HAVE_GNU_EXTENSIONS
va_start(p, format);
r = vasprintf(&string_ptr, format, p);
va_end(p);
+#else
+ va_start(p, format);
+ r = vsnprintf(NULL, 0, format, p);
+ va_end(p);
+ string_ptr = xmalloc(r+1);
+ va_start(p, format);
+ r = vsnprintf(string_ptr, r+1, format, p);
+ va_end(p);
+#endif
if (r < 0) {
bb_perror_msg_and_die("bb_xasprintf");