[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r11699 - in Extractor/src: common main plugins
From: |
gnunet |
Subject: |
[GNUnet-SVN] r11699 - in Extractor/src: common main plugins |
Date: |
Sun, 13 Jun 2010 00:01:49 +0200 |
Author: grothoff
Date: 2010-06-13 00:01:49 +0200 (Sun, 13 Jun 2010)
New Revision: 11699
Modified:
Extractor/src/common/convert.c
Extractor/src/main/extract.c
Extractor/src/main/extractor.c
Extractor/src/main/extractor_print.c
Extractor/src/main/iconv.c
Extractor/src/plugins/deb_extractor.c
Extractor/src/plugins/real_extractor.c
Log:
style
Modified: Extractor/src/common/convert.c
===================================================================
--- Extractor/src/common/convert.c 2010-06-12 21:04:54 UTC (rev 11698)
+++ Extractor/src/common/convert.c 2010-06-12 22:01:49 UTC (rev 11699)
@@ -45,6 +45,8 @@
cd = iconv_open ("UTF-8", charset);
if (cd == (iconv_t) - 1)
return strdup (i);
+ if (len > 1024 * 1024)
+ return NULL; /* too big for meta data */
tmpSize = 3 * len + 4;
tmp = malloc (tmpSize);
if (tmp == NULL)
Modified: Extractor/src/main/extract.c
===================================================================
--- Extractor/src/main/extract.c 2010-06-12 21:04:54 UTC (rev 11698)
+++ Extractor/src/main/extract.c 2010-06-12 22:01:49 UTC (rev 11699)
@@ -91,7 +91,7 @@
int j;
int ml;
int p;
- char * scp;
+ char scp[80];
const char * trans;
printf(_("Usage: %s\n%s\n\n"),
@@ -129,7 +129,6 @@
while (ml - p > 78 - slen) {
for (j=p+78-slen;j>p;j--) {
if (isspace( (unsigned char) trans[j])) {
- scp = malloc(j-p+1);
memcpy(scp,
&trans[p],
j-p);
@@ -138,14 +137,12 @@
scp,
BORDER+2,
"");
- free(scp);
p = j+1;
slen = BORDER+2;
goto OUTER;
}
}
/* could not find space to break line */
- scp = malloc(78 - slen + 1);
memcpy(scp,
&trans[p],
78 - slen);
@@ -154,7 +151,6 @@
scp,
BORDER+2,
"");
- free(scp);
slen = BORDER+2;
p = p + 78 - slen;
}
@@ -230,6 +226,7 @@
char * keyword;
iconv_t cd;
const char *stype;
+ const char *mt;
if (print[type] != YES)
return 0;
@@ -237,7 +234,8 @@
fprintf (stdout,
_("Found by `%s' plugin:\n"),
plugin_name);
- stype = gettext(EXTRACTOR_metatype_to_string(type));
+ mt = EXTRACTOR_metatype_to_string(type);
+ stype = (mt == NULL) ? _("unknown") : gettext(mt);
switch (format)
{
case EXTRACTOR_METAFORMAT_UNKNOWN:
@@ -312,9 +310,13 @@
{
char * keyword;
iconv_t cd;
+ const char *mt;
if (print[type] != YES)
return 0;
+ mt = EXTRACTOR_metatype_to_string(type);
+ if (mt == NULL)
+ mt = gettext_noop ("unknown");
switch (format)
{
case EXTRACTOR_METAFORMAT_UNKNOWN:
@@ -323,7 +325,7 @@
if (verbose > 1)
fprintf (stdout,
"%s: ",
- gettext(EXTRACTOR_metatype_to_string(type)));
+ gettext(mt));
cd = iconv_open(nl_langinfo(CODESET), "UTF-8");
if (cd != (iconv_t) -1)
keyword = iconv_helper(cd,
@@ -333,7 +335,7 @@
if (keyword != NULL)
{
fprintf (stdout,
- "'%s' ",
+ "`%s' ",
keyword);
free(keyword);
}
@@ -346,9 +348,9 @@
if (verbose > 1)
fprintf (stdout,
"%s ",
- gettext(EXTRACTOR_metatype_to_string(type)));
+ gettext(mt));
fprintf (stdout,
- "'%s'",
+ "`%s'",
data);
break;
default:
Modified: Extractor/src/main/extractor.c
===================================================================
--- Extractor/src/main/extractor.c 2010-06-12 21:04:54 UTC (rev 11698)
+++ Extractor/src/main/extractor.c 2010-06-12 22:01:49 UTC (rev 11699)
@@ -1220,6 +1220,12 @@
memset (&hdr, 0, sizeof (hdr));
fin = fdopen (in, "r");
+ if (fin == NULL)
+ {
+ close (in);
+ close (out);
+ return;
+ }
while (NULL != fgets (hfn, sizeof(hfn), fin))
{
if (strlen (hfn) <= 1)
Modified: Extractor/src/main/extractor_print.c
===================================================================
--- Extractor/src/main/extractor_print.c 2010-06-12 21:04:54 UTC (rev
11698)
+++ Extractor/src/main/extractor_print.c 2010-06-12 22:01:49 UTC (rev
11699)
@@ -51,6 +51,7 @@
iconv_t cd;
char * buf;
int ret;
+ const char *mt;
if (format != EXTRACTOR_METAFORMAT_UTF8)
return 0;
@@ -61,10 +62,11 @@
buf = iconv_helper(cd, data);
if (buf != NULL)
{
+ mt = EXTRACTOR_metatype_to_string (type);
ret = fprintf(handle,
"%s - %s\n",
- dgettext ("libextractor",
- EXTRACTOR_metatype_to_string (type)),
+ (mt == NULL) ? _("unknown") : dgettext ("libextractor",
+ mt),
buf);
free(buf);
}
Modified: Extractor/src/main/iconv.c
===================================================================
--- Extractor/src/main/iconv.c 2010-06-12 21:04:54 UTC (rev 11698)
+++ Extractor/src/main/iconv.c 2010-06-12 22:01:49 UTC (rev 11699)
@@ -37,7 +37,9 @@
iconv(cd, NULL, NULL, NULL, NULL);
inSize = strlen(in);
- outSize = 4 * strlen(in) + 2;
+ if (inSize > 1024 * 1024)
+ return NULL; /* too big to be meta data */
+ outSize = 4 * inSize + 2;
outLeft = outSize - 2; /* make sure we have 2 0-terminations! */
buf = malloc(outSize);
if (buf == NULL)
Modified: Extractor/src/plugins/deb_extractor.c
===================================================================
--- Extractor/src/plugins/deb_extractor.c 2010-06-12 21:04:54 UTC (rev
11698)
+++ Extractor/src/plugins/deb_extractor.c 2010-06-12 22:01:49 UTC (rev
11699)
@@ -223,10 +223,15 @@
}
#define MAX_CONTROL_SIZE (1024 * 1024)
+#ifndef SIZE_MAX
+#define SIZE_MAX ((size_t)-1)
+#endif
static voidpf
Emalloc (voidpf opaque, uInt items, uInt size)
{
+ if (SIZE_MAX / size <= items)
+ return NULL;
return malloc (size * items);
}
Modified: Extractor/src/plugins/real_extractor.c
===================================================================
--- Extractor/src/plugins/real_extractor.c 2010-06-12 21:04:54 UTC (rev
11698)
+++ Extractor/src/plugins/real_extractor.c 2010-06-12 22:01:49 UTC (rev
11699)
@@ -162,63 +162,76 @@
+ sizeof (Content_Description))
return 0;
+ ret = 0;
title = malloc (title_len + 1);
- memcpy (title, &prop->data[0], title_len);
- title[title_len] = '\0';
- ret = proc (proc_cls,
- "real",
- EXTRACTOR_METATYPE_TITLE,
- EXTRACTOR_METAFORMAT_UTF8,
- "text/plain",
- title,
- strlen (title)+1);
- free (title);
+ if (title != NULL)
+ {
+ memcpy (title, &prop->data[0], title_len);
+ title[title_len] = '\0';
+ ret = proc (proc_cls,
+ "real",
+ EXTRACTOR_METATYPE_TITLE,
+ EXTRACTOR_METAFORMAT_UTF8,
+ "text/plain",
+ title,
+ strlen (title)+1);
+ free (title);
+ }
if (ret != 0)
return ret;
author = malloc (author_len + 1);
- memcpy (author, &prop->data[title_len + sizeof (UINT16)], author_len);
- author[author_len] = '\0';
- ret = proc (proc_cls,
- "real",
- EXTRACTOR_METATYPE_AUTHOR_NAME,
- EXTRACTOR_METAFORMAT_UTF8,
- "text/plain",
- author,
- strlen (author)+1);
- free (author);
+ if (author != NULL)
+ {
+ memcpy (author, &prop->data[title_len + sizeof (UINT16)], author_len);
+ author[author_len] = '\0';
+ ret = proc (proc_cls,
+ "real",
+ EXTRACTOR_METATYPE_AUTHOR_NAME,
+ EXTRACTOR_METAFORMAT_UTF8,
+ "text/plain",
+ author,
+ strlen (author)+1);
+ free (author);
+ }
if (ret != 0)
return ret;
copyright = malloc (copyright_len + 1);
- memcpy (copyright,
- &prop->data[title_len + sizeof (UINT16) * 2 + author_len],
- copyright_len);
- copyright[copyright_len] = '\0';
- ret = proc (proc_cls,
- "real",
- EXTRACTOR_METATYPE_COPYRIGHT,
- EXTRACTOR_METAFORMAT_UTF8,
- "text/plain",
- copyright,
- strlen (copyright)+1);
- free (copyright);
+ if (copyright != NULL)
+ {
+ memcpy (copyright,
+ &prop->data[title_len + sizeof (UINT16) * 2 + author_len],
+ copyright_len);
+ copyright[copyright_len] = '\0';
+ ret = proc (proc_cls,
+ "real",
+ EXTRACTOR_METATYPE_COPYRIGHT,
+ EXTRACTOR_METAFORMAT_UTF8,
+ "text/plain",
+ copyright,
+ strlen (copyright)+1);
+ free (copyright);
+ }
if (ret != 0)
return ret;
comment = malloc (comment_len + 1);
- memcpy (comment,
- &prop->data[title_len + sizeof (UINT16) * 3 + author_len +
- copyright_len], comment_len);
- comment[comment_len] = '\0';
- ret = proc (proc_cls,
- "real",
- EXTRACTOR_METATYPE_COMMENT,
- EXTRACTOR_METAFORMAT_UTF8,
- "text/plain",
- comment,
- strlen (comment)+1);
- free (comment);
+ if (comment != NULL)
+ {
+ memcpy (comment,
+ &prop->data[title_len + sizeof (UINT16) * 3 + author_len +
+ copyright_len], comment_len);
+ comment[comment_len] = '\0';
+ ret = proc (proc_cls,
+ "real",
+ EXTRACTOR_METATYPE_COMMENT,
+ EXTRACTOR_METAFORMAT_UTF8,
+ "text/plain",
+ comment,
+ strlen (comment)+1);
+ free (comment);
+ }
if (ret != 0)
return ret;
return 0;
@@ -263,6 +276,8 @@
{
char *tmp;
tmp = malloc (n + 1);
+ if (tmp == NULL)
+ return NULL;
tmp[n] = '\0';
memcpy (tmp, str, n);
return tmp;
@@ -321,50 +336,62 @@
if ( (tlen > 0) && (ret == 0) )
{
x = stndup ((const char *) &data[17 + RAFF4_HDR_SIZE], tlen);
- ret = proc (proc_cls,
- "real",
- EXTRACTOR_METATYPE_MIMETYPE,
- EXTRACTOR_METAFORMAT_UTF8,
- "text/plain",
- x,
- strlen (x)+1);
- free (x);
+ if (x != NULL)
+ {
+ ret = proc (proc_cls,
+ "real",
+ EXTRACTOR_METATYPE_MIMETYPE,
+ EXTRACTOR_METAFORMAT_UTF8,
+ "text/plain",
+ x,
+ strlen (x)+1);
+ free (x);
+ }
}
if ( (alen > 0) && (ret == 0) )
{
x = stndup ((const char *) &data[18 + RAFF4_HDR_SIZE + tlen], alen);
- ret = proc (proc_cls,
- "real",
- EXTRACTOR_METATYPE_MIMETYPE,
- EXTRACTOR_METAFORMAT_UTF8,
- "text/plain",
- x,
- strlen (x)+1);
- free (x);
+ if (x != NULL)
+ {
+ ret = proc (proc_cls,
+ "real",
+ EXTRACTOR_METATYPE_MIMETYPE,
+ EXTRACTOR_METAFORMAT_UTF8,
+ "text/plain",
+ x,
+ strlen (x)+1);
+ free (x);
+ }
}
if ( (clen > 0) && (ret == 0) )
{
x = stndup ((const char *) &data[19 + RAFF4_HDR_SIZE + tlen + alen],
clen);
- ret = proc (proc_cls,
- "real",
- EXTRACTOR_METATYPE_MIMETYPE,
- EXTRACTOR_METAFORMAT_UTF8,
- "text/plain",
- x,
- strlen (x)+1);
- free (x);
+ if (x != NULL)
+ {
+ ret = proc (proc_cls,
+ "real",
+ EXTRACTOR_METATYPE_MIMETYPE,
+ EXTRACTOR_METAFORMAT_UTF8,
+ "text/plain",
+ x,
+ strlen (x)+1);
+ free (x);
+ }
}
if ( (aplen > 0) && (ret == 0) )
{
x = stndup ((const char *) &data[20 + RAFF4_HDR_SIZE + tlen + alen +
clen], aplen);
- ret = proc (proc_cls,
- "real",
- EXTRACTOR_METATYPE_MIMETYPE,
- EXTRACTOR_METAFORMAT_UTF8,
- "text/plain",
- x,
- strlen (x)+1);
- free (x);
+ if (x != NULL)
+ {
+ ret = proc (proc_cls,
+ "real",
+ EXTRACTOR_METATYPE_MIMETYPE,
+ EXTRACTOR_METAFORMAT_UTF8,
+ "text/plain",
+ x,
+ strlen (x)+1);
+ free (x);
+ }
}
return ret;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r11699 - in Extractor/src: common main plugins,
gnunet <=