@@ -883,15 +883,17 @@ ggml_tensor * rpc_server::deserialize_tensor(struct ggml_context * ctx, const rp
883
883
}
884
884
result->buffer = reinterpret_cast <ggml_backend_buffer_t >(tensor->buffer );
885
885
if (result->buffer && buffers.find (result->buffer ) == buffers.end ()) {
886
- return nullptr ;
886
+ result-> buffer = nullptr ;
887
887
}
888
888
889
- // require that the tensor data does not go beyond the buffer end
890
- uint64_t tensor_size = (uint64_t ) ggml_nbytes (result);
891
- uint64_t buffer_start = (uint64_t ) ggml_backend_buffer_get_base (result->buffer );
892
- uint64_t buffer_size = (uint64_t ) ggml_backend_buffer_get_size (result->buffer );
893
- GGML_ASSERT (tensor->data + tensor_size >= tensor->data ); // check for overflow
894
- GGML_ASSERT (tensor->data >= buffer_start && tensor->data + tensor_size <= buffer_start + buffer_size);
889
+ if (result->buffer ) {
890
+ // require that the tensor data does not go beyond the buffer end
891
+ uint64_t tensor_size = (uint64_t ) ggml_nbytes (result);
892
+ uint64_t buffer_start = (uint64_t ) ggml_backend_buffer_get_base (result->buffer );
893
+ uint64_t buffer_size = (uint64_t ) ggml_backend_buffer_get_size (result->buffer );
894
+ GGML_ASSERT (tensor->data + tensor_size >= tensor->data ); // check for overflow
895
+ GGML_ASSERT (tensor->data >= buffer_start && tensor->data + tensor_size <= buffer_start + buffer_size);
896
+ }
895
897
896
898
result->op = (ggml_op) tensor->op ;
897
899
for (uint32_t i = 0 ; i < GGML_MAX_OP_PARAMS / sizeof (int32_t ); i++) {
@@ -1060,7 +1062,7 @@ bool rpc_server::graph_compute(const std::vector<uint8_t> & input, std::vector<u
1060
1062
const rpc_tensor * tensors = (const rpc_tensor *)(input.data () + sizeof (n_nodes) + n_nodes*sizeof (uint64_t ) + sizeof (n_tensors));
1061
1063
GGML_PRINT_DEBUG (" [%s] n_nodes: %u, n_tensors: %u\n " , __func__, n_nodes, n_tensors);
1062
1064
1063
- static size_t buf_size = ggml_tensor_overhead ()*(n_nodes + n_tensors) + ggml_graph_overhead_custom (n_nodes, false );
1065
+ size_t buf_size = ggml_tensor_overhead ()*(n_nodes + n_tensors) + ggml_graph_overhead_custom (n_nodes, false );
1064
1066
struct ggml_init_params params = {
1065
1067
/* .mem_size =*/ buf_size,
1066
1068
/* .mem_buffer =*/ NULL ,
0 commit comments