]> git.pld-linux.org Git - packages/audacious-plugins.git/blob - audacious-plugins-AUDPLUG-323.patch
- fix name of patches
[packages/audacious-plugins.git] / audacious-plugins-AUDPLUG-323.patch
1
2 # HG changeset patch
3 # User John Lindgren <john.lindgren@tds.net>
4 # Date 1295406442 18000
5 # Node ID b2c94059fb28375515c0ca9b54a5b2f09c333375
6 # Parent  3f1ab558c6cf557d226151e941b5113ccd154d73
7 mtp_up: Use strrchr instead of rindex; fix potential 0x1 pointer dereference (patch from Carlo Bramini, AUDPLUG-323).
8
9 diff -r 3f1ab558c6cf -r b2c94059fb28 src/mtp_up/filetype.c
10 --- a/src/mtp_up/filetype.c     Tue Jan 18 01:19:25 2011 -0500
11 +++ b/src/mtp_up/filetype.c     Tue Jan 18 22:07:22 2011 -0500
12 @@ -2,84 +2,76 @@
13  #include "string.h"
14  #include "filetype.h"
15  
16 +typedef struct {
17 +    const char *ptype;
18 +    const LIBMTP_filetype_t filetype;
19 +} file_entry_t;
20 +
21 +/* This need to be kept constantly updated as new file types arrive. */
22 +static const file_entry_t file_entries[] = {
23 +    { "wav",  LIBMTP_FILETYPE_WAV },
24 +    { "mp3",  LIBMTP_FILETYPE_MP3 },
25 +    { "wma",  LIBMTP_FILETYPE_WMA },
26 +    { "ogg",  LIBMTP_FILETYPE_OGG },
27 +    { "mp4",  LIBMTP_FILETYPE_MP4 },
28 +    { "wmv",  LIBMTP_FILETYPE_WMV },
29 +    { "avi",  LIBMTP_FILETYPE_AVI },
30 +    { "mpeg", LIBMTP_FILETYPE_MPEG },
31 +    { "mpg",  LIBMTP_FILETYPE_MPEG },
32 +    { "asf",  LIBMTP_FILETYPE_ASF },
33 +    { "qt",   LIBMTP_FILETYPE_QT },
34 +    { "mov",  LIBMTP_FILETYPE_QT },
35 +    { "wma",  LIBMTP_FILETYPE_WMA },
36 +    { "jpg",  LIBMTP_FILETYPE_JPEG },
37 +    { "jpeg", LIBMTP_FILETYPE_JPEG },
38 +    { "jfif", LIBMTP_FILETYPE_JFIF },
39 +    { "tif",  LIBMTP_FILETYPE_TIFF },
40 +    { "tiff", LIBMTP_FILETYPE_TIFF },
41 +    { "bmp",  LIBMTP_FILETYPE_BMP },
42 +    { "gif",  LIBMTP_FILETYPE_GIF },
43 +    { "pic",  LIBMTP_FILETYPE_PICT },
44 +    { "pict", LIBMTP_FILETYPE_PICT },
45 +    { "png",  LIBMTP_FILETYPE_PNG },
46 +    { "wmf",  LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT },
47 +    { "ics",  LIBMTP_FILETYPE_VCALENDAR2 },
48 +    { "exe",  LIBMTP_FILETYPE_WINEXEC },
49 +    { "com",  LIBMTP_FILETYPE_WINEXEC },
50 +    { "bat",  LIBMTP_FILETYPE_WINEXEC },
51 +    { "dll",  LIBMTP_FILETYPE_WINEXEC },
52 +    { "sys",  LIBMTP_FILETYPE_WINEXEC },
53 +    { "aac",  LIBMTP_FILETYPE_AAC },
54 +    { "mp2",  LIBMTP_FILETYPE_MP2 },
55 +    { "flac", LIBMTP_FILETYPE_FLAC },
56 +    { "m4a",  LIBMTP_FILETYPE_M4A },
57 +    { "doc",  LIBMTP_FILETYPE_DOC },
58 +    { "xml",  LIBMTP_FILETYPE_XML },
59 +    { "xls",  LIBMTP_FILETYPE_XLS },
60 +    { "ppt",  LIBMTP_FILETYPE_PPT },
61 +    { "mht",  LIBMTP_FILETYPE_MHT },
62 +    { "jp2",  LIBMTP_FILETYPE_JP2 },
63 +    { "jpx",  LIBMTP_FILETYPE_JPX }
64 +};
65 +
66  /* Find the file type based on extension */
67  LIBMTP_filetype_t
68  find_filetype (const char * filename)
69  {
70 -  char *ptype;
71 -  ptype = rindex(filename,'.')+1;
72 -  LIBMTP_filetype_t filetype;
73 -  /* This need to be kept constantly updated as new file types arrive. */
74 -  if (!strcasecmp (ptype, "wav")) {
75 -    filetype = LIBMTP_FILETYPE_WAV;
76 -  } else if (!strcasecmp (ptype, "mp3")) {
77 -    filetype = LIBMTP_FILETYPE_MP3;
78 -  } else if (!strcasecmp (ptype, "wma")) {
79 -    filetype = LIBMTP_FILETYPE_WMA;
80 -  } else if (!strcasecmp (ptype, "ogg")) {
81 -    filetype = LIBMTP_FILETYPE_OGG;
82 -  } else if (!strcasecmp (ptype, "mp4")) {
83 -    filetype = LIBMTP_FILETYPE_MP4;
84 -  } else if (!strcasecmp (ptype, "wmv")) {
85 -    filetype = LIBMTP_FILETYPE_WMV;
86 -  } else if (!strcasecmp (ptype, "avi")) {
87 -    filetype = LIBMTP_FILETYPE_AVI;
88 -  } else if (!strcasecmp (ptype, "mpeg") || !strcasecmp (ptype, "mpg")) {
89 -    filetype = LIBMTP_FILETYPE_MPEG;
90 -  } else if (!strcasecmp (ptype, "asf")) {
91 -    filetype = LIBMTP_FILETYPE_ASF;
92 -  } else if (!strcasecmp (ptype, "qt") || !strcasecmp (ptype, "mov")) {
93 -    filetype = LIBMTP_FILETYPE_QT;
94 -  } else if (!strcasecmp (ptype, "wma")) {
95 -    filetype = LIBMTP_FILETYPE_WMA;
96 -  } else if (!strcasecmp (ptype, "jpg") || !strcasecmp (ptype, "jpeg")) {
97 -    filetype = LIBMTP_FILETYPE_JPEG;
98 -  } else if (!strcasecmp (ptype, "jfif")) {
99 -    filetype = LIBMTP_FILETYPE_JFIF;
100 -  } else if (!strcasecmp (ptype, "tif") || !strcasecmp (ptype, "tiff")) {
101 -    filetype = LIBMTP_FILETYPE_TIFF;
102 -  } else if (!strcasecmp (ptype, "bmp")) {
103 -    filetype = LIBMTP_FILETYPE_BMP;
104 -  } else if (!strcasecmp (ptype, "gif")) {
105 -    filetype = LIBMTP_FILETYPE_GIF;
106 -  } else if (!strcasecmp (ptype, "pic") || !strcasecmp (ptype, "pict")) {
107 -    filetype = LIBMTP_FILETYPE_PICT;
108 -  } else if (!strcasecmp (ptype, "png")) {
109 -    filetype = LIBMTP_FILETYPE_PNG;
110 -  } else if (!strcasecmp (ptype, "wmf")) {
111 -    filetype = LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT;
112 -  } else if (!strcasecmp (ptype, "ics")) {
113 -    filetype = LIBMTP_FILETYPE_VCALENDAR2;
114 -  } else if (!strcasecmp (ptype, "exe") || !strcasecmp (ptype, "com") ||
115 -            !strcasecmp (ptype, "bat") || !strcasecmp (ptype, "dll") ||
116 -            !strcasecmp (ptype, "sys")) {
117 -    filetype = LIBMTP_FILETYPE_WINEXEC;
118 -  } else if (!strcasecmp (ptype, "aac")) {
119 -    filetype = LIBMTP_FILETYPE_AAC;
120 -  } else if (!strcasecmp (ptype, "mp2")) {
121 -    filetype = LIBMTP_FILETYPE_MP2;
122 -  } else if (!strcasecmp (ptype, "flac")) {
123 -    filetype = LIBMTP_FILETYPE_FLAC;
124 -  } else if (!strcasecmp (ptype, "m4a")) {
125 -    filetype = LIBMTP_FILETYPE_M4A;
126 -  } else if (!strcasecmp (ptype, "doc")) {
127 -    filetype = LIBMTP_FILETYPE_DOC;
128 -  } else if (!strcasecmp (ptype, "xml")) {
129 -    filetype = LIBMTP_FILETYPE_XML;
130 -  } else if (!strcasecmp (ptype, "xls")) {
131 -    filetype = LIBMTP_FILETYPE_XLS;
132 -  } else if (!strcasecmp (ptype, "ppt")) {
133 -    filetype = LIBMTP_FILETYPE_PPT;
134 -  } else if (!strcasecmp (ptype, "mht")) {
135 -    filetype = LIBMTP_FILETYPE_MHT;
136 -  } else if (!strcasecmp (ptype, "jp2")) {
137 -    filetype = LIBMTP_FILETYPE_JP2;
138 -  } else if (!strcasecmp (ptype, "jpx")) {
139 -    filetype = LIBMTP_FILETYPE_JPX;
140 -  } else {
141 -    /* Tagging as unknown file type */
142 -    filetype = LIBMTP_FILETYPE_UNKNOWN;
143 -  }
144 -  return filetype;
145 +    char *ptype = strrchr(filename,'.');
146 +    unsigned int n;
147 +
148 +    if (ptype != NULL)
149 +    {
150 +        /* Skip '.' char */
151 +        ptype++;
152 +
153 +        /* Seach entry in the table */
154 +        for (n=0; n<sizeof(file_entries)/sizeof(file_entries[0]); n++)
155 +        {
156 +            if (!strcasecmp (ptype, file_entries[n].ptype))
157 +                return file_entries[n].filetype;
158 +        }
159 +    }
160 +
161 +    return LIBMTP_FILETYPE_UNKNOWN;
162  }
163  
164
This page took 0.074479 seconds and 3 git commands to generate.