summaryrefslogtreecommitdiff
path: root/src/tag.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-03-26 10:38:07 +0000
committerEric Wong <normalperson@yhbt.net>2008-03-26 10:38:07 +0000
commit27f12c173d57d09d095d0e5ecfeb18acf5d2434a (patch)
treea1016cf4f069f0ab804f3023c87eb494c45dfed2 /src/tag.c
parent0692f6cd0ab12e921d1897de215fb42d6dc79a7c (diff)
use size_t
When dealing with in-memory lengths, the standard type "size_t" should be used. Missing one can be quite dangerous, because an attacker could provoke an integer under-/overflow, which may provide an attack vector. git-svn-id: https://svn.musicpd.org/mpd/trunk@7205 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'src/tag.c')
-rw-r--r--src/tag.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/tag.c b/src/tag.c
index b3645e007..eb971ecdc 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -466,8 +466,8 @@ MpdTag *apeDup(char *file)
int tagCount;
char *buffer = NULL;
char *p;
- int tagLen;
- int size;
+ size_t tagLen;
+ size_t size;
unsigned long flags;
int i;
char *key;
@@ -508,7 +508,7 @@ MpdTag *apeDup(char *file)
/* determine if file has an apeV2 tag */
if (fseek(fp, 0, SEEK_END))
goto fail;
- size = ftell(fp);
+ size = (size_t)ftell(fp);
if (fseek(fp, size - sizeof(footer), SEEK_SET))
goto fail;
if (fread(&footer, 1, sizeof(footer), fp) != sizeof(footer))
@@ -554,7 +554,7 @@ MpdTag *apeDup(char *file)
tagLen--;
/* get the value */
- if (tagLen - size < 0)
+ if (tagLen < size)
goto fail;
/* we only care about utf-8 text tags */