Hi,<br><br>In driver_wext.c in functi<span class="gI"></span>on there is memcpy that has overlapping areas :<br>struct wpa_scan_results * wpa_driver_wext_get_scan_results(void *priv)<br>{<br>...<br>if (wext_19_iw_point(drv, iwe-&gt;cmd)) {<br>
            /* WE-19 removed the pointer from struct iw_point */<br>            char *dpos = (char *) &amp;iwe_buf.u.data.length;<br>            int dlen = dpos - (char *) &amp;iwe_buf;<br>            os_memcpy(dpos, pos + IW_EV_LCP_LEN,   &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<br>
                  sizeof(struct iw_event) - dlen);<br>        } else {<br>            os_memcpy(&amp;iwe_buf, pos, sizeof(struct iw_event));<br>            custom += IW_EV_POINT_OFF;<br>        }<br> ...<br>}<br><br>It didn&#39;t work for me so I needed to exchange it with memmove() call.<br>
I am just curious how it worked for other people ? Is it possible that most memcpy() lib functions know how to handle overlapping areas ?<br>Anyway it is not a mandatory memcpy() functionality.<br><br>Thanks,<br><br>Dmitry<br>