if ((fp = fs_open(path, "r")))
{
- d = malloc(sizeof (struct demo));
+ d = calloc(1, sizeof (struct demo));
if (demo_header_read(fp, d))
{
- strncpy(d->filename, path, MAXSTR);
- strncpy(d->name, base_name(d->filename, ".nbr"), PATHMAX);
+ strncpy(d->filename, path, MAXSTR - 1);
+ strncpy(d->name, base_name(d->filename, ".nbr"), PATHMAX - 1);
d->name[PATHMAX - 1] = '\0';
}
else
strncpy(demo.player, config_get_s(CONFIG_PLAYER), sizeof (demo.player) - 1);
- strncpy(demo.shot, level->shot, PATHMAX);
- strncpy(demo.file, level->file, PATHMAX);
+ strncpy(demo.shot, level->shot, PATHMAX - 1);
+ strncpy(demo.file, level->file, PATHMAX - 1);
demo.time = t;
demo.goal = g;
if (demo_fp && demo_header_read(demo_fp, &demo_replay))
{
- strncpy(demo_replay.filename, name, MAXSTR);
+ strncpy(demo_replay.filename, name, MAXSTR - 1);
strncpy(demo_replay.name,
base_name(demo_replay.filename, ".nbr"),
- PATHMAX);
+ PATHMAX - 1);
if (level_load(demo_replay.file, &demo_level_replay))
{
char *v = fp->av + fp->dv[i].aj;
if (strcmp(k, "message") == 0)
- strncpy(l->message, v, MAXSTR);
+ strncpy(l->message, v, MAXSTR - 1);
else if (strcmp(k, "song") == 0)
- strncpy(l->song, v, PATHMAX);
+ strncpy(l->song, v, PATHMAX - 1);
else if (strcmp(k, "shot") == 0)
- strncpy(l->shot, v, PATHMAX);
+ strncpy(l->shot, v, PATHMAX - 1);
else if (strcmp(k, "goal") == 0)
{
l->goal = atoi(v);
}
}
else if (strcmp(k, "version") == 0)
- strncpy(l->version, v, MAXSTR);
+ strncpy(l->version, v, MAXSTR - 1);
else if (strcmp(k, "author") == 0)
- strncpy(l->author, v, MAXSTR);
+ strncpy(l->author, v, MAXSTR - 1);
else if (strcmp(k, "bonus") == 0)
l->is_bonus = atoi(v) ? 1 : 0;
}
{
struct level *l = get_level(level);
- strncpy(l->score.best_times.player [time_rank], player, MAXNAM);
- strncpy(l->score.fast_unlock.player[goal_rank], player, MAXNAM);
- strncpy(l->score.most_coins.player [coin_rank], player, MAXNAM);
+ strncpy(l->score.best_times.player [time_rank], player, MAXNAM - 1);
+ strncpy(l->score.fast_unlock.player[goal_rank], player, MAXNAM - 1);
+ strncpy(l->score.most_coins.player [coin_rank], player, MAXNAM - 1);
}
/*---------------------------------------------------------------------------*/
char player[MAXNAM];
int tmp;
- strncpy(player, S->player[i], MAXNAM);
- strncpy(S->player[i], S->player[j], MAXNAM);
- strncpy(S->player[j], player, MAXNAM);
+ strncpy(player, S->player[i], MAXNAM - 1);
+ strncpy(S->player[i], S->player[j], MAXNAM - 1);
+ strncpy(S->player[j], player, MAXNAM - 1);
tmp = S->timer[i];
S->timer[i] = S->timer[j];
{
int i;
- strncpy(s->player[3], player, MAXNAM);
+ strncpy(s->player[3], player, MAXNAM - 1);
s->timer[3] = timer;
s->coins[3] = coins;
{
int i;
- strncpy(s->player[3], player, MAXNAM);
+ strncpy(s->player[3], player, MAXNAM - 1);
s->timer[3] = timer;
s->coins[3] = coins;
{
struct set *s = SET_GET(sets, curr);
- strncpy(s->coin_score.player[score_rank], player, MAXNAM);
- strncpy(s->time_score.player[times_rank], player, MAXNAM);
+ strncpy(s->coin_score.player[score_rank], player, MAXNAM - 1);
+ strncpy(s->time_score.player[times_rank], player, MAXNAM - 1);
}
/*---------------------------------------------------------------------------*/
base = path_last_sep(name);
- strncpy(buf, base ? base + 1 : name, sizeof (buf));
+ strncpy(buf, base ? base + 1 : name, sizeof (buf) - 1);
/* Remove the suffix. */
int main(int argc, char *argv[])
{
- char src[MAXSTR];
- char dst[MAXSTR];
+ char src[MAXSTR] = "";
+ char dst[MAXSTR] = "";
struct s_file f;
fs_file fin;
if (argc > 3 && strcmp(argv[3], "--debug") == 0)
debug_output = 1;
- strncpy(src, argv[1], MAXSTR);
- strncpy(dst, argv[1], MAXSTR);
+ strncpy(src, argv[1], MAXSTR - 1);
+ strncpy(dst, argv[1], MAXSTR - 1);
if (strcmp(dst + strlen(dst) - 4, ".map") == 0)
strcpy(dst + strlen(dst) - 4, ".sol");