X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=ext%2Fvcedit.c;h=fd89008587c452b23db169e16c5435cc1a88593f;hb=e517c533f959a75908b7361b1969146d29cdfa02;hp=dfad95caf8a807bb5dee614e2590cfa567eaa726;hpb=1395b8113e601b31a8f1f30f97496024fdc72c9e;p=ruby-vorbistagger.git diff --git a/ext/vcedit.c b/ext/vcedit.c index dfad95c..fd89008 100644 --- a/ext/vcedit.c +++ b/ext/vcedit.c @@ -71,10 +71,12 @@ vcedit_state_free (vcedit_state *state) } static bool -vcedit_state_init (vcedit_state *state) +vcedit_state_init (vcedit_state *state, const char *filename) { state->refcount = 1; + strcpy (state->filename, filename); + return true; } @@ -85,6 +87,8 @@ vcedit_state_new (const char *filename) size_t len; len = strlen (filename); + if (len > PATH_MAX) + return NULL; state = malloc (sizeof (vcedit_state) + len + 1); if (!state) @@ -92,13 +96,11 @@ vcedit_state_new (const char *filename) memset (state, 0, sizeof (vcedit_state)); - if (!vcedit_state_init (state)) { + if (!vcedit_state_init (state, filename)) { vcedit_state_free (state); return NULL; } - strcpy (state->filename, filename); - return state; }