mirror of https://github.com/ecmwf/eccodes.git
Error messages
This commit is contained in:
parent
f83540af74
commit
7c13e374a0
|
@ -66,16 +66,16 @@ int grib_accessor_ascii_t::pack_string(const char* val, size_t* len)
|
||||||
{
|
{
|
||||||
grib_handle* hand = grib_handle_of_accessor(this);
|
grib_handle* hand = grib_handle_of_accessor(this);
|
||||||
const size_t alen = length_;
|
const size_t alen = length_;
|
||||||
if (len[0] > (alen + 1)) {
|
if (*len > (alen + 1)) {
|
||||||
grib_context_log(context_, GRIB_LOG_ERROR,
|
grib_context_log(context_, GRIB_LOG_ERROR,
|
||||||
"pack_string: Wrong size (%zu) for %s, it contains %ld values",
|
"%s: Buffer too small for %s. It is %zu bytes long (input string len=%zu)",
|
||||||
len[0], name_, length_ + 1);
|
class_name_, name_, alen, *len);
|
||||||
len[0] = 0;
|
*len = alen;
|
||||||
return GRIB_BUFFER_TOO_SMALL;
|
return GRIB_BUFFER_TOO_SMALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < alen; i++) {
|
for (size_t i = 0; i < alen; i++) {
|
||||||
if (i < len[0])
|
if (i < *len)
|
||||||
hand->buffer->data[offset_ + i] = val[i];
|
hand->buffer->data[offset_ + i] = val[i];
|
||||||
else
|
else
|
||||||
hand->buffer->data[offset_ + i] = 0;
|
hand->buffer->data[offset_ + i] = 0;
|
||||||
|
|
Loading…
Reference in New Issue