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) { |