Make ef_write() treat it like any other invalid write beyond the file
size: oops. Be less harsh in ef_extend() and ef_truncate(): log an
error.
ep = &empfile[type];
if (CANT_HAPPEN((ep->flags & (EFF_MEM | EFF_PRIVATE)) == EFF_PRIVATE))
return 0;
+ if (CANT_HAPPEN(ep->nent >= 0 && id >= ep->nent))
+ return 0; /* beyond fixed size */
new_seqno(ep, from);
if (id >= ep->fids) {
/* beyond end of file */
if (ef_check(type) < 0)
return 0;
ep = &empfile[type];
+ if (ep->nent >= 0) {
+ logerror("Can't extend %s, its size is fixed", ep->name);
+ return 0;
+ }
if (!do_extend(ep, count))
return 0;
if (ep->onresize)
if (ef_check(type) < 0 || CANT_HAPPEN(EF_IS_VIEW(type)))
return 0;
ep = &empfile[type];
+ if (ep->nent >= 0) {
+ logerror("Can't truncate %s, its size is fixed", ep->name);
+ return 0;
+ }
if (CANT_HAPPEN(count < 0 || count > ep->fids))
return 0;