Skip to content

Commit

Permalink
shell/vfs: Handle print failure in genfile cmd gracefully
Browse files Browse the repository at this point in the history
  • Loading branch information
Teufelchen1 committed Apr 25, 2024
1 parent 3c3c5c2 commit 8bd1de8
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions sys/shell/cmds/vfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -742,11 +742,19 @@ static char _get_char(unsigned i)
static void _write_block(int fd, unsigned bs, unsigned i)
{
char block[bs];
char *buf = block;

buf += snprintf(buf, bs, "|%03u|", i);
int size_wanted = snprintf(block, bs, "|%03u|", i);

if (size_wanted < 0) {
assert(0);
return;
}

/* Only memset the buffer, if there is space left in the buffer */
if ((unsigned) size_wanted < bs) {
memset(&block[size_wanted], _get_char(i), bs - size_wanted);
}

memset(buf, _get_char(i), &block[bs] - buf);
block[bs - 1] = '\n';

vfs_write(fd, block, bs);
Expand Down

0 comments on commit 8bd1de8

Please sign in to comment.