Skip to content

Commit 103cfaf

Browse files
authored
gguf : fix strings to not be null-terminated (ggml-org#2839)
* gguf : fix strings to not be null-terminated ggml-ci * gguf : fix gguf_add_tensor name
1 parent c10704d commit 103cfaf

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

ggml.c

+6-6
Original file line numberDiff line numberDiff line change
@@ -19524,8 +19524,8 @@ static bool gguf_fread_str_v1(FILE * file, struct gguf_str * p, size_t * offset)
1952419524
bool ok = true;
1952519525

1952619526
uint32_t n = 0;
19527-
ok = ok && gguf_fread_el(file, &n, sizeof(n), offset); p->data = calloc(n + 1, 1); p->n = n;
19528-
ok = ok && gguf_fread_el(file, p->data, p->n, offset);
19527+
ok = ok && gguf_fread_el(file, &n, sizeof(n), offset); p->data = calloc(n + 1, 1); p->n = n;
19528+
ok = ok && gguf_fread_el(file, p->data, p->n, offset);
1952919529

1953019530
return ok;
1953119531
}
@@ -20071,7 +20071,7 @@ static int gguf_get_or_add_key(struct gguf_context * ctx, const char * key) {
2007120071
const int n_kv = gguf_get_n_kv(ctx);
2007220072

2007320073
ctx->kv = realloc(ctx->kv, (n_kv + 1) * sizeof(struct gguf_kv));
20074-
ctx->kv[n_kv].key.n = strlen(key) + 1;
20074+
ctx->kv[n_kv].key.n = strlen(key);
2007520075
ctx->kv[n_kv].key.data = strdup(key);
2007620076
ctx->header.n_kv++;
2007720077

@@ -20159,7 +20159,7 @@ void gguf_set_val_str(struct gguf_context * ctx, const char * key, const char *
2015920159
const int idx = gguf_get_or_add_key(ctx, key);
2016020160

2016120161
ctx->kv[idx].type = GGUF_TYPE_STRING;
20162-
ctx->kv[idx].value.str.n = strlen(val) + 1;
20162+
ctx->kv[idx].value.str.n = strlen(val);
2016320163
ctx->kv[idx].value.str.data = strdup(val);
2016420164
}
2016520165

@@ -20182,7 +20182,7 @@ void gguf_set_arr_str(struct gguf_context * ctx, const char * key, const char **
2018220182
ctx->kv[idx].value.arr.data = malloc(n*sizeof(struct gguf_str));
2018320183
for (int i = 0; i < n; i++) {
2018420184
struct gguf_str * str = &((struct gguf_str *)ctx->kv[idx].value.arr.data)[i];
20185-
str->n = strlen(data[i]) + 1;
20185+
str->n = strlen(data[i]);
2018620186
str->data = strdup(data[i]);
2018720187
}
2018820188
}
@@ -20229,7 +20229,7 @@ void gguf_add_tensor(
2022920229
const int idx = ctx->header.n_tensors;
2023020230
ctx->infos = realloc(ctx->infos, (idx + 1)*sizeof(struct gguf_tensor_info));
2023120231

20232-
ctx->infos[idx].name.n = strlen(tensor->name) + 1;
20232+
ctx->infos[idx].name.n = strlen(tensor->name);
2023320233
ctx->infos[idx].name.data = strdup(tensor->name);
2023420234

2023520235
for (int i = 0; i < GGML_MAX_DIMS; ++i) {

0 commit comments

Comments
 (0)