ref: 34b514c97b38e01acf48c079c4be894f714eba78
parent: ea9af4c1e9502c6eb87d246745298f1b55860f29
author: Yaroslav K <yarikos@gmail.com>
date: Tue Mar 31 11:26:26 EDT 2026
fix memset calls
--- a/cap.c
+++ b/cap.c
@@ -59,7 +59,7 @@
p = a;
ep = p+nb;
- memset(caps, sizeof(*caps), 0);
+ memset(caps, 0, sizeof(*caps));
ncap = GSHORT(p);
p += 4;
@@ -231,7 +231,7 @@
}
PSHORT(p+0, CapOrder);
PSHORT(p+2, 88); // size
- memset(p+4, 16, 0); // terminalDescriptor
+ memset(p+4, 0, 16); // terminalDescriptor
PLONG(p+20, 0); // pad4octetsA
PSHORT(p+24, 1); // desktopSaveXGranularity
PSHORT(p+26, 20); // desktopSaveYGranularity
@@ -271,7 +271,7 @@
PLONG(p+16, 336); // BitmapCache2CellInfo
PLONG(p+20, 0); // BitmapCache3CellInfo
PLONG(p+24, 0); // BitmapCache4CellInfo
- memset(p+28, 12, 0); // Pad3
+ memset(p+28, 0, 12); // Pad3
return 40;
}
@@ -324,7 +324,7 @@
PLONG(p+12, 4); // keyboardType: IBM enhanced (101- or 102-key)
PLONG(p+16, 0); // keyboardSubType
PLONG(p+20, 12); // keyboardFunctionKey
- memset(p+24, 64, 0); // imeFileName
+ memset(p+24, 0, 64); // imeFileName
return 88;
}
--- a/efs_test.c
+++ b/efs_test.c
@@ -12,6 +12,7 @@
void testsannrq(void);
int audiotests(void);
+int msgtests(void);
void
testsannrq()
@@ -26,7 +27,7 @@
if(n >= 0)
sysfatal("testsannrq: expected error"); - memset(buf, 8, 0);
+ memset(buf, 0, 8);
n = getefsmsg(&m, buf, 8);
if(n >= 0)
sysfatal("testsannrq: expected error"); --- a/ele.c
+++ b/ele.c
@@ -114,12 +114,12 @@
PSHORT(p+2, ndata);
PLONG(p+4, KeyExRSA);
PLONG(p+8, 0);
- memset(p+12, RandomSize, 0);
+ memset(p+12, 0, RandomSize);
p += 12+RandomSize;
PSHORT(p+0, Brandom);
PSHORT(p+2, 48);
- memset(p+4, 48, 0);
+ memset(p+4, 0, 48);
p += 4+48;
PSHORT(p+0, Bcuser);
--- a/mcs.c
+++ b/mcs.c
@@ -323,13 +323,13 @@
PSHORT(p+14, 0xAA03); // SASSequence
PLONG(p+16, 0x409); // keyboardLayout=us
PLONG(p+20, 2600); // clientBuild
- memset(p+24, 32, 0); // clientName[32]
+ memset(p+24, 0, 32); // clientName[32]
toutf16(p+24, 32, sysname, strlen(sysname)+1);
PSHORT(p+54, 0); // zero-terminateclientName
PLONG(p+56, 4); // keyboardType: 4="IBM enhanced (101-key or 102-key)"
PLONG(p+60, 0); // keyboardSubType
PLONG(p+64, 12); // keyboardFunctionKey
- memset(p+68, 64, 0); // imeFileName[64]
+ memset(p+68, 0, 64); // imeFileName[64]
PSHORT(p+132, 0xCA01); // postBeta2ColorDepth=8bpp, ignored
PSHORT(p+134, 1); // clientProductId
PLONG(p+136, 0); // serialNumber
@@ -336,7 +336,7 @@
PSHORT(p+140, MIN(depth, 24)); // highColorDepth: 4, 8, 15, 16, 24 bpp.
PSHORT(p+142, 1+2+4+8); // supportedColorDepths: 1=24, 2=16, 4=15, 8=32 bpp
PSHORT(p+144, earlyCapabilityFlags); // earlyCapabilityFlags
- memset(p+146, 64, 0); // clientDigProductId[64]
+ memset(p+146, 0, 64); // clientDigProductId[64]
p[210] = 7; // connectionType: 7=autodetect
p[211] = 0; // pad1octet
PLONG(p+212, sproto); // serverSelectedProtocol
--- a/mpas.c
+++ b/mpas.c
@@ -490,7 +490,7 @@
PSHORT(q+2, 0); // clientAddress
PSHORT(q+4, 2); // cbClientDir
PSHORT(q+6, 0); // clientDir
- memset(q+8, 172, 0); // clientTimeZone
+ memset(q+8, 0, 172); // clientTimeZone
PLONG(q+180, 0); // clientSessionId
PLONG(q+184, perfopt); // performanceFlags
q += 188;
--- a/mppc.c
+++ b/mppc.c
@@ -107,7 +107,7 @@
if(flags&Preset){s->indx = 0;
s->size = 0;
- memset(s->his, maxhis, 0);
+ memset(s->his, 0, maxhis);
}
if(flags&Pfront){s->indx = 0;
--- a/msg.c
+++ b/msg.c
@@ -272,7 +272,7 @@
q = putsdh(p, p+nld, nld, ADsupress, m->originid, m->shareid);
q[0] = (m->allow?1:0);
- memset(q+1, 3, 0);
+ memset(q+1, 0, 3);
if(m->allow){PSHORT(q+4, 0); // left
PSHORT(q+6, 0); // top
--- a/msg_test.c
+++ b/msg_test.c
@@ -19,6 +19,7 @@
want = "0300002722E00000000000436F6F6B69653A206D737473686173683D780D0A0100080001000000";
if(strcmp(s, want) != 0)
sysfatal("testputmsg1: want %s, got %s", want, s);+ free(s);
return 0;
}
@@ -38,6 +39,7 @@
s = smprint("%.*H", n, buf);if(strcmp(s, want = "03000007028080") != 0)
sysfatal("testputmsg2: want %s, got %s", want, s);+ free(s);
return 0;
}
@@ -57,6 +59,7 @@
s = smprint("%.*H", n, buf);if(strcmp(s, want = "0300000802F08028") != 0)
sysfatal("testputmsg3: want %s, got %s", want, s);+ free(s);
return 0;
}
@@ -78,6 +81,7 @@
s = smprint("%.*H", n, buf);if(strcmp(s, want = "0300000C02F08038DEADBEEF") != 0)
sysfatal("testputmsg4: want %s, got %s", want, s);+ free(s);
return 0;
}
@@ -97,6 +101,7 @@
s = smprint("%.*H", n, buf);if(strcmp(s, want = "0300000C02F0800400010001") != 0)
sysfatal("testputmsg5: want %s, got %s", want, s);+ free(s);
return 0;
}
@@ -128,26 +133,14 @@
if(n < 0)
sysfatal("testputmsg6: unexpected error: %r\n");- // Edit s/................/&" "/g
- want =
- "030001A602F0807F6582019A04010104" "01010101FF3020020200220202000202"
- "02000002020001020200000202000102" "02FFFF02020002302002020001020200"
- "01020200010202000102020000020200" "01020204200202000230200202FFFF02"
- "02FFFF0202FFFF020200010202000002" "0200010202FFFF020200020482012700"
- "0500147C0001811E000800100001C000" "44756361811001C0D800040008000004"
- "000301CA03AA09040000280A00005400" "530043004C00490045004E0054002D00"
- "54004500530054000000F90700000400" "0000000000000C000000080000000600"
- "010044AC000044AC0000010008000000" "070002002256000044AC000002000800"
- "00000700010044AC000044AC00000100" "0800000002000200225601CA01000000"
- "000018000F0003000700000100000002" "00FF00000000C0004000F0000000CC01"
- "30FF880118FF1100020022560000B956" "0000000404000200F9030200010044AC"
- "0000A3560000000407000100000002C0" "0C00000000000000000004C00C000900"
- "00000000000003C0200002000000434C" "49505244520080000000524450445200"
- "000080000000";
+ want = "030001A602F0807F6582019A0401010401010101FF30200202002202020002020200000202000102020000020200010202FFFF020200023020020200010202000102020001020200010202000002020001020204200202000230200202FFFF0202FFFF0202FFFF0202000102020000020200010202FFFF0202000204820127000500147C0001811E000800100001C00044756361811001C0D800040008000004000301CA03AA09040000280A00005400530043004C00490045004E0054002D00540045005300540000000000000004000000000000000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001CA01000000000018000F0003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000100000002C00C00000000000000000004C00C00090000000000000003C0200002000000434C49505244520080000000524450445200000080000000";
s = smprint("%.*H", n, buf);- if(strcmp(s, want) != 0)
- sysfatal("testputmsg6: want '%s', got '%s'", want, s);+ if(strcmp(s, want) != 0){+ fprint(2, "testputmsg6: want '%s', got '%s'\n", want, s);
+ sysfatal("testputmsg6");+ }
+ free(s);
return 0;
}
@@ -172,19 +165,14 @@
if(n < 0)
sysfatal("testputmsg7: unexpected error: %r\n");- // Edit s/................................................................/&"\n "/g
- want =
- "AwABMwLwgGS+7wPrcIEkQAAAAAAAAAC7AwAADgAQAAwAGAAGAFQARQBTAFQARABP"
- "AE0AAAB0AGUAcwB0AHUAcwBlAHIAAABzAGUAYwByAGUAdAAAAGUAeABwAGwAbwBy"
- "AGUAcgAuAGUAeABlAAAAQwA6AFwAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAA"
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
- "AAAAAAAAAAAAAAAAAAAAzgAAAA==";
+ want = "0300013302F08064BEEF03EB7081244000000000000000BB0300000E0010000C0018000600540045005300540044004F004D00000074006500730074007500730065007200000073006500630072006500740000006500780070006C006F007200650072002E00650078006500000043003A005C00000002000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000CE000000";
- s = smprint("%.*[", n, buf);- if(strcmp(s, want) != 0)
- sysfatal("testputmsg7: want '%s', got '%s'", want, s);+ s = smprint("%.*H", n, buf);+ if(strcmp(s, want) != 0){+ fprint(2, "testputmsg7: want '%s', got '%s'\n", want, s);
+ sysfatal("testputmsg7");+ }
+ free(s);
return 0;
}
@@ -207,21 +195,14 @@
if(n < 0)
sysfatal("testputmsg8: unexpected error: %r\n");- // Edit s/................................................................/&"\n "/g
- want =
- "AwABhALwgGS7uwPrcIF1dQETALu7zMwAAKqqBwBeAVBsYW4gOQAIAAAAAQAYAAAA"
- "AAAAAgIAAAAFBAAAAAAAAAAAAgAeAAAAAQABAAEAAARYAgAAAQABAAAAAQAAAAIA"
- "AwBYAAECAgQgAgIAAjAgAgL//wIAAAAAAQAUAAAAAQAAAGoAAAABAQAAAAAAAAAA"
- "AAAAAAAAAAAAAAAAAAAAAAAAAAChBgAAAAAAAACEAwAAAAAA5AAEABMAKAAAAAAD"
- "eAAAAHgAAABQAQAAAAAAAAAAAABUAEUAUwBUAAAA+QcIAAgAAAAUAA0AWAARAAAA"
- "CQQAAAQAAAAAAAAADAAAAAgAAAAHAAIAIlYAAESsAAACAAgAAAAHAAEARKwAAESs"
- "AAABAAgAAAACAAIAIlYBygEAAAAAABgADwADAAcAAAEMAAgAAAAAABQACAAAAAAA"
- "EAA0AP4ABAD+AAQA/gAIAP4ACAD+ABAA/gAgAP4AQAD+AIAA/gAAAUAAAAgAAQAB"
- "AAAAAA==";
+ want = "0300018402F08064BBBB03EB70817575011300BBBBCCCC0000AAAA07005E01506C616E2039000800000001001800000000000002000200000504000000000000000002001E000000010001000100000458020000010001000000010000000002030058000000000000000000000000000000000000000000010014000000010000006A000000010100000000000000000000000000000000000000000000000000000000A1060000000000000084030000000000E40004001300280000000003780000007800000050010000000000000000000000000000000000000000000008000800000014000D005800110000000904000004000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C00080000000000140008000000000010003400FE000400FE000400FE000800FE000800FE001000FE002000FE004000FE008000FE000001400000080001000100000000";
- s = smprint("%.*[", n, buf);- if(strcmp(s, want) != 0)
- sysfatal("testputmsg8: want '%s', got '%s'", want, s);+ s = smprint("%.*H", n, buf);+ if(strcmp(s, want) != 0){+ fprint(2, "testputmsg8: want '%s', got '%s'\n", want, s);
+ sysfatal("testputmsg8");+ }
+ free(s);
return 0;
}
@@ -255,6 +236,7 @@
s = smprint("%.*H", n, buf);if(strcmp(s, want) != 0)
sysfatal("testputmsg9: want '%s', got '%s'", want, s);+ free(s);
return 0;
}
@@ -279,6 +261,7 @@
s = smprint("%.*H", n, buf);if(strcmp(s, want) != 0)
sysfatal("testputmsg10: want '%s', got '%s'", want, s);+ free(s);
return 0;
}
@@ -298,6 +281,7 @@
s = smprint("%.*H", n, buf);if(strcmp(s, want) != 0)
sysfatal("testputmsg11: want '%s', got '%s'", want, s);+ free(s);
return 0;
}
@@ -317,6 +301,7 @@
s = smprint("%.*H", n, buf);if(strcmp(s, want) != 0)
sysfatal("testputmsg12: want '%s', got '%s'", want, s);+ free(s);
return 0;
}
@@ -336,6 +321,7 @@
s = smprint("%.*H", n, buf);if(strcmp(s, want) != 0)
sysfatal("testputmsg13: want '%s', got '%s'", want, s);+ free(s);
return 0;
}
@@ -359,14 +345,12 @@
if(n < 0)
sysfatal("testputmsg14: unexpected error: %r\n");- // Edit s/................/&" "/g
- want =
- "0300003102F08064" "111103EB70802222" "0017001111222200" "00000122001C0000"
- "0001000000000000" "0000000000000000" "00";
+ want = "0300003102F08064111103EB70802222001700111122220000000122001C00000001000000000000000000000000000000";
s = smprint("%.*H", n, buf);if(strcmp(s, want) != 0)
sysfatal("testputmsg14: want '%s', got '%s'", want, s);+ free(s);
return 0;
}
@@ -394,14 +378,12 @@
if(n < 0)
sysfatal("testputmsg15: unexpected error: %r\n");- // Edit s/................/&" "/g
- want =
- "0300003102F08064" "111103EB70802222" "0017001111222200" "00000122001C0000"
- "0001000000333300" "00040044002A0000" "00";
+ want = "0300003102F08064111103EB70802222001700111122220000000122001C0000000100000033330000040044002A000000";
s = smprint("%.*H", n, buf);if(strcmp(s, want) != 0)
sysfatal("testputmsg15: want '%s', got '%s'", want, s);+ free(s);
return 0;
}
@@ -411,6 +393,7 @@
int n;
char *s, *want;
uchar buf[2*1024];
+
Msg m = {.type = Lreq, .sysname = "TESTSYS", .user = "testuser", .originid=0x1111};n = putmsg(buf, sizeof buf, &m);
@@ -417,17 +400,62 @@
if(n < 0)
sysfatal("testputmsg16: unexpected error: %r\n");- // Edit s/................/&" "/g
want =
- "0300008C02F08064" "111103EB70807D80" "0000001303790001" "0000000000000000"
- "0000000000000000" "0000000000000000" "0000000000000000" "0000000000000002"
- "0030000000000000" "0000000000000000" "0000000000000000" "0000000000000000"
- "0000000000000000" "0000000000000000" "0000000F00090074" "6573747573657200"
- "1000080054455354" "53595300";
+ // TPKT header
+ "03" // version[1] = 3
+ "00" // unused[1] = 0
+ "008C" // len[2]
+ // TPDU header
+ "02" // hdlen[1] = 2
+ "F0" // type[1] = Data
+ "80" // seqno[1] = (0 in Class 0) + EOT mark (1<<7)
+
+ // MCS Send Data Request: header
+ "64" // type = Msdr(25) <<2
+ "1111" // mcsuid = m.originid (0x1111)
+ "03EB" // chanid = GLOBALCHAN(1003)
+ "70" // always 0x70
+ "807D" // 0x8000 | ndata(125)
+
+ // MCS Send Data Request: data
+ "80000000" // sechdr[4]: secflags[4] = Slicensepk(0x80)
+ "13" // type[1] = CNeedLicense
+ "03" // flags[1] = PreambleV3
+ "7900" // size[2]
+ "01000000" // kexalg[4] = KeyExRSA
+ "00000000" // platfid[4] = 0
+ "0000000000000000" "0000000000000000"
+ "0000000000000000" "0000000000000000"
+ // crandom[32] = 32 {0}+
+ // premaster[blob]
+ "0200" // type[2] = Brandom(2)
+ "3000" // len[2] = 48
+ "0000000000000000" "0000000000000000"
+ "0000000000000000" "0000000000000000"
+ "0000000000000000" "0000000000000000"
+ // data[len] = 48 {0}+
+ // cuser[blob]
+ "0F00" // type[2] = Bcuser(15)
+ "0900" // len[2] = 9
+ "746573747573657200"
+ // data[len] = "testuser\0"
+
+ // chost[blob]
+ "1000" // type[2] = Bchost(16)
+ "0800" // len[2] = 8
+ "5445535453595300"
+ // data[len] = "TESTSYS\0"
+ ;
+
s = smprint("%.*H", n, buf);- if(strcmp(s, want) != 0)
- sysfatal("testputmsg16: want '%s', got '%s'", want, s);+ if(strcmp(s, want) != 0){+ fprint(2, "testputmsg16: want '%s', got '%s'\n", want, s);
+ sysfatal("testputmsg16");+ }
+ free(s);
return 0;
}
@@ -442,15 +470,13 @@
if(n < 0)
sysfatal("testputmsg17: unexpected error: %r\n");- // Edit s/................/&" "/g
want =
- "0300002302F08064" "111103EB70801480"
- "000000FF03100002" "0000000100000004"
- "000000";
+ "0300002302F08064111103EB70801480000000FF031000020000000100000004000000";
s = smprint("%.*H", n, buf);if(strcmp(s, want) != 0)
sysfatal("testputmsg17: want '%s', got '%s'", want, s);+ free(s);
return 0;
}
@@ -472,15 +498,13 @@
if(n < 0)
sysfatal("testputmsg18: unexpected error: %r\n");- // Edit s/................/&" "/g
want =
- "0300002D02F08064" "222203EB70801E1E"
- "0017002222333300" "0000011E00230000"
- "0001001111000000" "00FF041F03";
+ "0300002D02F08064222203EB70801E1E00170022223333000000011E00230000000100000000000000FF041F03";
s = smprint("%.*H", n, buf);if(strcmp(s, want) != 0)
sysfatal("testputmsg18: want '%s', got '%s'", want, s);+ free(s);
return 0;
}
@@ -842,10 +866,9 @@
}
int
-msgtests()
+msgtests(void)
{ fmtinstall('H', encodefmt);- fmtinstall('[', encodefmt);testputmsg1();
testputmsg2();
testputmsg3();
--- a/rle.c
+++ b/rle.c
@@ -138,7 +138,7 @@
len *= pixelsize;
if(wp+len > we){Overrun:
- werrstr("unrle: output buffer is %uld bytes short", wp+len-we);+ werrstr("unrle: output buffer is %uld bytes short", (ulong)(wp-we+len));return nil;
}
@@ -173,7 +173,7 @@
}
memmove(wp, wp-bpl, len);
}else
- memset(wp, len, 0);
+ memset(wp, 0, len);
wasbg = 1;
break;
case FgS:
@@ -219,7 +219,7 @@
if(wp-bpl >= d)
memmove(wp, wp-bpl, pixelsize);
else
- memset(wp, pixelsize, 0);
+ memset(wp, 0, pixelsize);
}
wp += pixelsize;
len -= pixelsize;
@@ -251,7 +251,7 @@
len = pixelsize;
if(wp+len > we)
goto Overrun;
- memset(wp, pixelsize, 0);
+ memset(wp, 0, pixelsize);
break;
}
wp += len;
--
⑨