1 /* bug-2793.c
2 A parameter changed from unsigned int to unsigned long in CSE.
3 */
4
5 #include <testfwk.h>
6
7 typedef unsigned int UINT;
8 typedef unsigned char BYTE;
9 typedef unsigned short WORD;
10 typedef unsigned long DWORD;
11
12 BYTE global_buf[10];
13
mem_set(void * dst,int val,UINT cnt)14 static void mem_set (void* dst, int val, UINT cnt)
15 {
16 ASSERT (dst == global_buf);
17 ASSERT (val == 0);
18 ASSERT (cnt == 1);
19 }
20
f_mkfs(void * work,UINT len)21 void f_mkfs (
22 void* work,
23 UINT len
24 )
25 {
26 const UINT n_fats = 1;
27
28 BYTE *buf;
29 WORD ss = 1;
30 DWORD szb_buf, sz_buf, sect, nsect, n;
31 DWORD b_fat;
32 DWORD sz_fat;
33 UINT i;
34
35 b_fat = 1;
36 sz_fat = 0;
37
38 {
39 buf = (BYTE*)work;
40 sz_buf = len / ss;
41 szb_buf = sz_buf * ss;
42 }
43
44 {
45 mem_set(buf, 0, (UINT)szb_buf);
46 sect = b_fat;
47 for (i = 0; i < n_fats; i++) {
48 nsect = sz_fat;
49 do {
50 n = (nsect > sz_buf) ? sz_buf : nsect;
51 mem_set(buf, 0, ss);
52 sect += n; nsect -= n;
53 } while (nsect);
54 }
55 }
56 }
57
testBug(void)58 void testBug(void)
59 {
60 f_mkfs (global_buf, 1);
61 }
62
63