Generate the network byte order version of the window size structure in a

temporary variable on the stack and then copy that into the output buffer
so that the htons() conversions use aligned accesses.

MFC after:	1 month
This commit is contained in:
John Baldwin 2011-04-26 20:14:29 +00:00
parent cfd2b3fb51
commit dc0a06319e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=221079

View File

@ -484,18 +484,18 @@ sigwinch(int signo __unused)
void
sendwindow(void)
{
struct winsize *wp;
struct winsize ws;
char obuf[4 + sizeof (struct winsize)];
wp = (struct winsize *)(obuf+4);
obuf[0] = 0377;
obuf[1] = 0377;
obuf[2] = 's';
obuf[3] = 's';
wp->ws_row = htons(winsize.ws_row);
wp->ws_col = htons(winsize.ws_col);
wp->ws_xpixel = htons(winsize.ws_xpixel);
wp->ws_ypixel = htons(winsize.ws_ypixel);
ws.ws_row = htons(winsize.ws_row);
ws.ws_col = htons(winsize.ws_col);
ws.ws_xpixel = htons(winsize.ws_xpixel);
ws.ws_ypixel = htons(winsize.ws_ypixel);
bcopy(&ws, obuf + 4, sizeof(ws));
(void)write(rem, obuf, sizeof(obuf));
}