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->cmd)) {<br>
/* WE-19 removed the pointer from struct iw_point */<br> char *dpos = (char *) &iwe_buf.u.data.length;<br> int dlen = dpos - (char *) &iwe_buf;<br> os_memcpy(dpos, pos + IW_EV_LCP_LEN, <<<<<<<<<<<br>
sizeof(struct iw_event) - dlen);<br> } else {<br> os_memcpy(&iwe_buf, pos, sizeof(struct iw_event));<br> custom += IW_EV_POINT_OFF;<br> }<br> ...<br>}<br><br>It didn'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>