--- /dev/null
+--- busybox-1.18.2/networking/ping.c
++++ busybox-1.18.2-ping/networking/ping.c
+@@ -394,7 +394,7 @@ static void sendping4(int junk UNUSED_PA
+ #if ENABLE_PING6
+ static void sendping6(int junk UNUSED_PARAM)
+ {
+- struct icmp6_hdr *pkt = alloca(datalen + sizeof(struct icmp6_hdr) + 4);
++ struct icmp6_hdr *pkt = G.snd_packet;
+
+ //memset(pkt, 0, datalen + sizeof(struct icmp6_hdr) + 4);
+ pkt->icmp6_type = ICMP6_ECHO_REQUEST;
--- /dev/null
+--- busybox-1.18.2/archival/tar.c
++++ busybox-1.18.2-tar/archival/tar.c
+@@ -1037,8 +1037,10 @@ int tar_main(int argc UNUSED_PARAM, char
+ tar_handle->src_fd = tar_fd;
+ tar_handle->seek = seek_by_read;
+ } else {
+- if (ENABLE_FEATURE_TAR_AUTODETECT && flags == O_RDONLY) {
+- get_header_ptr = get_header_tar;
++ if (ENABLE_FEATURE_TAR_AUTODETECT
++ && flags == O_RDONLY
++ && get_header_ptr == get_header_tar
++ ) {
+ tar_handle->src_fd = open_zipped(tar_filename);
+ if (tar_handle->src_fd < 0)
+ bb_perror_msg_and_die("can't open '%s'", tar_filename);
--- /dev/null
+--- busybox-1.18.2/networking/udhcp/common.c
++++ busybox-1.18.2-udhcp/networking/udhcp/common.c
+@@ -375,7 +375,7 @@ static NOINLINE void attach_option(
+ new->data = xmalloc(length + OPT_DATA);
+ new->data[OPT_CODE] = optflag->code;
+ new->data[OPT_LEN] = length;
+- memcpy(new->data + OPT_DATA, buffer, length);
++ memcpy(new->data + OPT_DATA, (allocated ? allocated : buffer), length);
+
+ curr = opt_list;
+ while (*curr && (*curr)->data[OPT_CODE] < optflag->code)