1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
Fixes issues caught by ASan and UBSan.
diff -ur jamvm-1.5.1-old/src/alloc.c jamvm-1.5.1/src/alloc.c
--- jamvm-1.5.1-old/src/alloc.c 2008-02-21 19:57:42.000000000 -0600
+++ jamvm-1.5.1/src/alloc.c 2024-09-12 13:51:52.050426782 -0500
@@ -69,8 +69,8 @@
/* Bits used within the chunk header (see also alloc.h) */
#define ALLOC_BIT 1
#define SPECIAL_BIT 4
-#define HAS_HASHCODE_BIT (1<<31)
-#define HASHCODE_TAKEN_BIT (1<<30)
+#define HAS_HASHCODE_BIT (1u<<31)
+#define HASHCODE_TAKEN_BIT (1u<<30)
#define HDR_FLAGS_MASK ~(ALLOC_BIT|FLC_BIT|SPECIAL_BIT| \
HAS_HASHCODE_BIT|HASHCODE_TAKEN_BIT)
diff -ur jamvm-1.5.1-old/src/class.c jamvm-1.5.1/src/class.c
--- jamvm-1.5.1-old/src/class.c 2008-03-07 19:22:34.000000000 -0600
+++ jamvm-1.5.1/src/class.c 2024-09-12 13:44:19.108561458 -0500
@@ -603,7 +603,7 @@
if(classname[1] == 'L') {
char element_name[len-2];
- strcpy(element_name, classname + 2);
+ strncpy(element_name, classname + 2, len-3);
element_name[len-3] = '\0';
classblock->element_class = findClassFromClassLoader(element_name, class_loader);
} else
diff -ur jamvm-1.5.1-old/src/class.h jamvm-1.5.1/src/class.h
--- jamvm-1.5.1-old/src/class.h 2024-09-12 14:29:40.379457916 -0500
+++ jamvm-1.5.1/src/class.h 2024-09-12 13:53:46.438270697 -0500
@@ -25,7 +25,7 @@
#define READ_U1(v,p,l) v = *(p)++
#define READ_U2(v,p,l) v = ((p)[0]<<8)|(p)[1]; (p)+=2
-#define READ_U4(v,p,l) v = ((p)[0]<<24)|((p)[1]<<16)|((p)[2]<<8)|(p)[3]; (p)+=4
+#define READ_U4(v,p,l) v = ((u4)(p)[0]<<24)|((u4)(p)[1]<<16)|((u4)(p)[2]<<8)|(u4)(p)[3]; (p)+=4
#define READ_U8(v,p,l) v = ((u8)(p)[0]<<56)|((u8)(p)[1]<<48)|((u8)(p)[2]<<40) \
|((u8)(p)[3]<<32)|((u8)(p)[4]<<24)|((u8)(p)[5]<<16) \
|((u8)(p)[6]<<8)|(u8)(p)[7]; (p)+=8
diff -ur jamvm-1.5.1-old/src/lock.c jamvm-1.5.1/src/lock.c
--- jamvm-1.5.1-old/src/lock.c 2008-03-06 04:42:14.000000000 -0600
+++ jamvm-1.5.1/src/lock.c 2024-09-12 14:26:11.631626642 -0500
@@ -75,7 +75,7 @@
#define TID_SHIFT (COUNT_SIZE+COUNT_SHIFT)
#define TID_SIZE (32-TID_SHIFT)
-#define TID_MASK (((1<<TID_SIZE)-1)<<TID_SHIFT)
+#define TID_MASK (((1u<<TID_SIZE)-1)<<TID_SHIFT)
#define SCAVENGE(ptr) \
({ \
|