Text   |  XML   |  ReML   |   Visible Warnings:

Unreasonable Size Argument  at buffer.c:252

No properties have been set. | edit properties
Jump to warning location ↓ warning details...
Show Events | Options

mail_index_fsck_extensions

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib-index/mail-index-fsck.c)expand/collapse
Show more  
 258  mail_index_fsck_extensions(struct mail_index *index, struct mail_index_map *map,
 259                             struct mail_index_header *hdr)
 260  {
 261          const struct mail_index_ext_header *ext_hdr;
 262          ARRAY_TYPE(const_string) names;
 263          const char *name, *error;
 264          unsigned int offset, next_offset, i;
 265   
 266          t_array_init(&names, 64);
 267          offset = MAIL_INDEX_HEADER_SIZE_ALIGN(hdr->base_header_size);
 268          for (i = 0; offset < hdr->header_size; i++) {
 269                  /* mail_index_map_ext_get_next() uses map->hdr, so make sure 
 270                     it's up-to-date */
 271                  map->hdr = *hdr;
 272   
 273                  next_offset = offset;
 274                  if (mail_index_map_ext_get_next(map, &next_offset,
 275[+]                                                 &ext_hdr, &name) < 0) {
 276                          /* the extension continued outside header, drop it */
 277                          mail_index_fsck_error(index,
 278                                                "Dropped extension #%d (%s) "
 279                                                "with invalid header size",
 280                                                i, name);
 281                          hdr->header_size = offset;
 282                          break;
 283                  }
 284                  if (mail_index_map_ext_hdr_check(hdr, ext_hdr, name,
 285                                                   &error) < 0) {
 286                          mail_index_fsck_error(index,
 287                                  "Dropped broken extension #%d (%s)", i, name);
 288                  } else if (array_has_name(&names, name)) {
 289                          mail_index_fsck_error(index,
 290                                  "Dropped duplicate extension %s", name);
 291                  } else {
 292                          /* name may change if header buffer is changed */
 293                          name = t_strdup(name);
 294   
 295                          if (strcmp(name, MAIL_INDEX_EXT_KEYWORDS) == 0) {
 296                                  mail_index_fsck_keywords(index, map, hdr,
 297                                                           ext_hdr, offset,
 298                                                           &next_offset);
 299                          }
 300                          array_append(&names, &name, 1);
 301                          offset = next_offset;
 302                          continue;
 303                  }
 304   
 305                  /* drop the field */
 306                  hdr->header_size -= next_offset - offset;
 307                  buffer_copy(map->hdr_copy_buf, offset,
 308[+]                             map->hdr_copy_buf, next_offset, (size_t)-1);
expand/collapse

buffer_copy

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/buffer.c)expand/collapse
Show more  
 236  void buffer_copy(buffer_t *_dest, size_t dest_pos,
 237                   const buffer_t *_src, size_t src_pos, size_t copy_size)
 238  {
 239          struct real_buffer *dest = (struct real_buffer *)_dest;
 240          const struct real_buffer *src = (const struct real_buffer *)_src;
 241          size_t max_size;
 242   
 243          i_assert(src_pos <= src->used);
 244   
 245          max_size = src->used - src_pos;
 246          if (copy_size > max_size)
 247                  copy_size = max_size;
 248   
 249          buffer_check_limits(dest, dest_pos, copy_size);
 250          if (src == dest) {
 251                  memmove(dest->w_buffer + dest_pos,
 252                          src->r_buffer + src_pos, copy_size);
Show more  
Show more  




Change Warning 7214.24953 : Unreasonable Size Argument

Priority:
State:
Finding:
Owner:
Note: