stat(2) files before trying to load them to avoid problems, for example with "source-file /dev/zero".

This commit dedicated to Tom: protecting idiots from their own stupidity for more than 20 years.
This commit is contained in:
Nicholas Marriott
2009-05-21 19:38:51 +00:00
parent eb6007102e
commit a8ec5f1d09
3 changed files with 23 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/* $Id: cmd-load-buffer.c,v 1.3 2009-05-18 16:22:30 nicm Exp $ */
/* $Id: cmd-load-buffer.c,v 1.4 2009-05-21 19:38:51 nicm Exp $ */
/*
* Copyright (c) 2009 Tiago Cunha <me@tiagocunha.org>
@ -62,6 +62,10 @@ cmd_load_buffer_exec(struct cmd *self, struct cmd_ctx *ctx)
ctx->error(ctx, "%s: %s", data->arg, strerror(errno));
return (-1);
}
if (!S_ISREG(statbuf.st_mode)) {
ctx->error(ctx, "%s: not a regular file", data->arg);
return (-1);
}
if ((f = fopen(data->arg, "rb")) == NULL) {
ctx->error(ctx, "%s: %s", data->arg, strerror(errno));