ObjFW  Diff

Differences From Artifact [2d25231c0e]:

To Artifact [d80678a165]:


102
103
104
105
106
107
108
109
110
111
112
113






114
115
116
117
118

119
120
121
122
123
124
125
102
103
104
105
106
107
108





109
110
111
112
113
114
115
116
117
118

119
120
121
122
123
124
125
126







-
-
-
-
-
+
+
+
+
+
+




-
+








	return ret;
}

- (uint8_t*)readWithSize: (size_t)size
	       andNItems: (size_t)nitems
{
	uint64_t memsize;
	uint8_t	 *ret;
       
	if (size >= 0xFFFFFFFF || nitems >= 0xFFFFFFFF ||
	    (memsize = (uint64_t)nitems * size) > 0xFFFFFFFF) {
	size_t	memsize;
	uint8_t	*ret;

	memsize = nitems * size;
       
	if (size > SIZE_MAX / nitems) {
		[[OFOverflowException newWithObject: self] raise];
		return NULL;
	}
	
	ret = [self getMemWithSize: (size_t)memsize];
	ret = [self getMemWithSize: memsize];

	@try {
		[self readIntoBuffer: ret
			    withSize: size
			   andNItems: nitems];
	} @catch (OFReadFailedException *e) {
		[self freeMem: ret];