diff --git a/cmd-load-buffer.c b/cmd-load-buffer.c index 7114fda4..c4681e02 100644 --- a/cmd-load-buffer.c +++ b/cmd-load-buffer.c @@ -1,4 +1,4 @@ -/* $Id: cmd-load-buffer.c,v 1.13 2009-11-28 14:54:12 tcunha Exp $ */ +/* $Id: cmd-load-buffer.c,v 1.14 2009-11-28 14:55:22 tcunha Exp $ */ /* * Copyright (c) 2009 Tiago Cunha @@ -66,8 +66,8 @@ cmd_load_buffer_exec(struct cmd *self, struct cmd_ctx *ctx) ctx->error(ctx, "%s: %s", data->arg, strerror(errno)); goto error; } - if (sb.st_size > SIZE_MAX) { - ctx->error(ctx, "%s: file too large", data->arg); + if (sb.st_size <= 0 || (uintmax_t) sb.st_size > SIZE_MAX) { + ctx->error(ctx, "%s: file empty or too large", data->arg); goto error; } psize = (size_t) sb.st_size;