ucx/buffer.c

changeset 239
1634c3ea89da
parent 225
a1a068c2c4ef
child 250
b7d1317b138e
equal deleted inserted replaced
238:27b31c2c959c 239:1634c3ea89da
62 free(buffer); 62 free(buffer);
63 } 63 }
64 64
65 UcxBuffer* ucx_buffer_extract( 65 UcxBuffer* ucx_buffer_extract(
66 UcxBuffer *src, size_t start, size_t length, int flags) { 66 UcxBuffer *src, size_t start, size_t length, int flags) {
67 67 if (src->size == 0 || length == 0 ||
68 if (src->size == 0 || length == 0 || start+length > src->capacity) { 68 ((size_t)-1) - start < length || start+length > src->capacity)
69 {
69 return NULL; 70 return NULL;
70 } 71 }
71 72
72 UcxBuffer *dst = (UcxBuffer*) malloc(sizeof(UcxBuffer)); 73 UcxBuffer *dst = (UcxBuffer*) malloc(sizeof(UcxBuffer));
73 if (dst) { 74 if (dst) {

mercurial