* [Buildroot] [PATCH] curlftpfs: new package @ 2012-07-21 15:27 Richard Braun 2012-07-21 15:31 ` Thomas Petazzoni 0 siblings, 1 reply; 8+ messages in thread From: Richard Braun @ 2012-07-21 15:27 UTC (permalink / raw) To: buildroot Signed-off-by: Richard Braun <rbraun@sceen.net> --- package/Config.in | 1 + package/curlftpfs/Config.in | 17 +++++++++++++++++ package/curlftpfs/curlftpfs.mk | 14 ++++++++++++++ 3 files changed, 32 insertions(+), 0 deletions(-) create mode 100644 package/curlftpfs/Config.in create mode 100644 package/curlftpfs/curlftpfs.mk diff --git a/package/Config.in b/package/Config.in index f664b8e..edcf55c 100644 --- a/package/Config.in +++ b/package/Config.in @@ -169,6 +169,7 @@ menu "Hardware handling" source "package/acpid/Config.in" source "package/cdrkit/Config.in" source "package/cramfs/Config.in" +source "package/curlftpfs/Config.in" source "package/dbus/Config.in" source "package/dbus-glib/Config.in" source "package/dbus-python/Config.in" diff --git a/package/curlftpfs/Config.in b/package/curlftpfs/Config.in new file mode 100644 index 0000000..23c7547 --- /dev/null +++ b/package/curlftpfs/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_CURLFTPFS + bool "curlftpfs (FUSE)" + select BR2_PACKAGE_LIBFUSE + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE + select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE + select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_LIBCURL + depends on BR2_LARGEFILE + depends on BR2_USE_WCHAR # glib2 + help + CurlFtpFS is a filesystem for accessing FTP hosts based on FUSE + and libcurl. + +comment "curlftpfs requires a toolchain with LARGEFILE and WCHAR support" + depends on !BR2_LARGEFILE || !BR2_USE_WCHAR diff --git a/package/curlftpfs/curlftpfs.mk b/package/curlftpfs/curlftpfs.mk new file mode 100644 index 0000000..9e77eb0 --- /dev/null +++ b/package/curlftpfs/curlftpfs.mk @@ -0,0 +1,14 @@ +############################################################# +# +# curlftpfs +# +############################################################# + +CURLFTPFS_VERSION = 0.9.2 +CURLFTPFS_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/curlftpfs/$(CURLFTPFS_VERSION) +CURLFTPFS_DEPENDENCIES = \ + libglib2 libfuse openssl libcurl \ + $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) \ + $(if $(BR2_ENABLE_LOCALE),,libiconv) + +$(eval $(autotools-package)) -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] curlftpfs: new package 2012-07-21 15:27 [Buildroot] [PATCH] curlftpfs: new package Richard Braun @ 2012-07-21 15:31 ` Thomas Petazzoni 2012-07-21 16:11 ` Richard Braun 2012-07-21 19:36 ` [Buildroot] [PATCH] " Gustavo Zacarias 0 siblings, 2 replies; 8+ messages in thread From: Thomas Petazzoni @ 2012-07-21 15:31 UTC (permalink / raw) To: buildroot Le Sat, 21 Jul 2012 17:27:18 +0200, Richard Braun <rbraun@sceen.net> a ?crit : > @@ -169,6 +169,7 @@ menu "Hardware handling" > source "package/acpid/Config.in" > source "package/cdrkit/Config.in" > source "package/cramfs/Config.in" > +source "package/curlftpfs/Config.in" > source "package/dbus/Config.in" > source "package/dbus-glib/Config.in" > source "package/dbus-python/Config.in" This "Hardware handling" menu is becoming quite crazy. curlftpfs clearly has nothing to do with Hardware handling (and many other things in there). Even "cramfs" for example is not quite Hardware handling related. Maybe we should put more things in the "System tools" menu, or create a "Filesystems tools" menu or something. Suggestions welcome. Otherwise, looks good. Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] curlftpfs: new package 2012-07-21 15:31 ` Thomas Petazzoni @ 2012-07-21 16:11 ` Richard Braun 2012-07-24 11:44 ` [Buildroot] [PATCH v2] " Richard Braun 2012-07-21 19:36 ` [Buildroot] [PATCH] " Gustavo Zacarias 1 sibling, 1 reply; 8+ messages in thread From: Richard Braun @ 2012-07-21 16:11 UTC (permalink / raw) To: buildroot On Sat, Jul 21, 2012 at 05:31:44PM +0200, Thomas Petazzoni wrote: > Even "cramfs" for example is not quite Hardware handling related. Maybe > we should put more things in the "System tools" menu, or create a > "Filesystems tools" menu or something. Suggestions welcome. Replace "or" with "and" and it looks good enough for me. -- Richard Braun ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH v2] curlftpfs: new package 2012-07-21 16:11 ` Richard Braun @ 2012-07-24 11:44 ` Richard Braun 2012-07-30 14:09 ` [Buildroot] [PATCH v3] " Richard Braun 0 siblings, 1 reply; 8+ messages in thread From: Richard Braun @ 2012-07-24 11:44 UTC (permalink / raw) To: buildroot Signed-off-by: Richard Braun <rbraun@sceen.net> --- package/Config.in | 1 + package/curlftpfs/Config.in | 17 +++++++++++++++++ package/curlftpfs/curlftpfs.mk | 14 ++++++++++++++ 3 files changed, 32 insertions(+), 0 deletions(-) create mode 100644 package/curlftpfs/Config.in create mode 100644 package/curlftpfs/curlftpfs.mk diff --git a/package/Config.in b/package/Config.in index f664b8e..8b0188b 100644 --- a/package/Config.in +++ b/package/Config.in @@ -521,6 +521,7 @@ source "package/ctorrent/Config.in" source "package/cifs-utils/Config.in" source "package/conntrack-tools/Config.in" source "package/cups/Config.in" +source "package/curlftpfs/Config.in" if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/dhcp/Config.in" endif diff --git a/package/curlftpfs/Config.in b/package/curlftpfs/Config.in new file mode 100644 index 0000000..23c7547 --- /dev/null +++ b/package/curlftpfs/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_CURLFTPFS + bool "curlftpfs (FUSE)" + select BR2_PACKAGE_LIBFUSE + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE + select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE + select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_LIBCURL + depends on BR2_LARGEFILE + depends on BR2_USE_WCHAR # glib2 + help + CurlFtpFS is a filesystem for accessing FTP hosts based on FUSE + and libcurl. + +comment "curlftpfs requires a toolchain with LARGEFILE and WCHAR support" + depends on !BR2_LARGEFILE || !BR2_USE_WCHAR diff --git a/package/curlftpfs/curlftpfs.mk b/package/curlftpfs/curlftpfs.mk new file mode 100644 index 0000000..9e77eb0 --- /dev/null +++ b/package/curlftpfs/curlftpfs.mk @@ -0,0 +1,14 @@ +############################################################# +# +# curlftpfs +# +############################################################# + +CURLFTPFS_VERSION = 0.9.2 +CURLFTPFS_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/curlftpfs/$(CURLFTPFS_VERSION) +CURLFTPFS_DEPENDENCIES = \ + libglib2 libfuse openssl libcurl \ + $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) \ + $(if $(BR2_ENABLE_LOCALE),,libiconv) + +$(eval $(autotools-package)) -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH v3] curlftpfs: new package 2012-07-24 11:44 ` [Buildroot] [PATCH v2] " Richard Braun @ 2012-07-30 14:09 ` Richard Braun 2012-07-30 14:37 ` Thomas Petazzoni 0 siblings, 1 reply; 8+ messages in thread From: Richard Braun @ 2012-07-30 14:09 UTC (permalink / raw) To: buildroot Signed-off-by: Richard Braun <rbraun@sceen.net> --- package/Config.in | 1 + package/curlftpfs/Config.in | 17 ++++++ .../curlftpfs-000-fix-CURLOPT_INFILESIZE.patch | 11 ++++ ...curlftpfs-001-free_ftpfs_file-memleak-fix.patch | 13 +++++ .../curlftpfs-002-nocache-memleak-fix.patch | 58 ++++++++++++++++++++ package/curlftpfs/curlftpfs.mk | 14 +++++ 6 files changed, 114 insertions(+), 0 deletions(-) create mode 100644 package/curlftpfs/Config.in create mode 100644 package/curlftpfs/curlftpfs-000-fix-CURLOPT_INFILESIZE.patch create mode 100644 package/curlftpfs/curlftpfs-001-free_ftpfs_file-memleak-fix.patch create mode 100644 package/curlftpfs/curlftpfs-002-nocache-memleak-fix.patch create mode 100644 package/curlftpfs/curlftpfs.mk diff --git a/package/Config.in b/package/Config.in index f664b8e..8b0188b 100644 --- a/package/Config.in +++ b/package/Config.in @@ -521,6 +521,7 @@ source "package/ctorrent/Config.in" source "package/cifs-utils/Config.in" source "package/conntrack-tools/Config.in" source "package/cups/Config.in" +source "package/curlftpfs/Config.in" if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/dhcp/Config.in" endif diff --git a/package/curlftpfs/Config.in b/package/curlftpfs/Config.in new file mode 100644 index 0000000..23c7547 --- /dev/null +++ b/package/curlftpfs/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_CURLFTPFS + bool "curlftpfs (FUSE)" + select BR2_PACKAGE_LIBFUSE + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE + select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE + select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_LIBCURL + depends on BR2_LARGEFILE + depends on BR2_USE_WCHAR # glib2 + help + CurlFtpFS is a filesystem for accessing FTP hosts based on FUSE + and libcurl. + +comment "curlftpfs requires a toolchain with LARGEFILE and WCHAR support" + depends on !BR2_LARGEFILE || !BR2_USE_WCHAR diff --git a/package/curlftpfs/curlftpfs-000-fix-CURLOPT_INFILESIZE.patch b/package/curlftpfs/curlftpfs-000-fix-CURLOPT_INFILESIZE.patch new file mode 100644 index 0000000..bd14184 --- /dev/null +++ b/package/curlftpfs/curlftpfs-000-fix-CURLOPT_INFILESIZE.patch @@ -0,0 +1,11 @@ +CURLOPT_INFILESIZE does not support -1 arg. This fix bug #556012. +--- curlftpfs-0.9.2/ftpfs.c.old 2009-12-13 14:12:25.000000000 +0100 ++++ curlftpfs-0.9.2/ftpfs.c 2009-12-13 14:12:32.000000000 +0100 +@@ -503,7 +503,6 @@ + + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_URL, fh->full_path); + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_UPLOAD, 1); +- curl_easy_setopt_or_die(fh->write_conn, CURLOPT_INFILESIZE, -1); + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READFUNCTION, write_data_bg); + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READDATA, fh); + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_LOW_SPEED_LIMIT, 1); diff --git a/package/curlftpfs/curlftpfs-001-free_ftpfs_file-memleak-fix.patch b/package/curlftpfs/curlftpfs-001-free_ftpfs_file-memleak-fix.patch new file mode 100644 index 0000000..e341b81 --- /dev/null +++ b/package/curlftpfs/curlftpfs-001-free_ftpfs_file-memleak-fix.patch @@ -0,0 +1,13 @@ +Fix a memory leak. See Bug #587250. + +--- a/ftpfs.c 2008-04-30 01:05:47.000000000 +0200 ++++ a/ftpfs.c.slesimple 2010-01-01 22:12:10.000000000 +0100 +@@ -615,6 +615,8 @@ static void free_ftpfs_file(struct ftpfs + sem_destroy(&fh->data_need); + sem_destroy(&fh->data_written); + sem_destroy(&fh->ready); ++ if (fh->buf.size) { buf_free(&fh->buf); } ++ if (fh->stream_buf.size) { buf_free(&fh->stream_buf); } + free(fh); + } + diff --git a/package/curlftpfs/curlftpfs-002-nocache-memleak-fix.patch b/package/curlftpfs/curlftpfs-002-nocache-memleak-fix.patch new file mode 100644 index 0000000..2c351a4 --- /dev/null +++ b/package/curlftpfs/curlftpfs-002-nocache-memleak-fix.patch @@ -0,0 +1,58 @@ +Fix a memory leak when cache is disabled. Closes: #614347. + +diff -ur curlftpfs-0.9.2/cache.c curlftpfs-0.9.2-olexat/cache.c +--- curlftpfs-0.9.2/cache.c 2008-04-30 01:03:09.000000000 +0200 ++++ curlftpfs-0.9.2-olexat/cache.c 2011-02-04 16:43:05.000000000 +0100 +@@ -25,7 +25,7 @@ + time_t last_cleaned; + }; + +-static struct cache cache; ++struct cache cache; + + struct node { + struct stat stat; +diff -ur curlftpfs-0.9.2/ftpfs-ls.c curlftpfs-0.9.2-olexat/ftpfs-ls.c +--- curlftpfs-0.9.2/ftpfs-ls.c 2008-04-23 12:55:41.000000000 +0200 ++++ curlftpfs-0.9.2-olexat/ftpfs-ls.c 2011-02-07 17:23:37.000000000 +0100 +@@ -25,6 +25,13 @@ + #include "charset_utils.h" + #include "ftpfs-ls.h" + ++struct cache { ++ int on; ++ char incomplete[]; ++}; ++ ++extern struct cache cache; ++ + static int parse_dir_unix(const char *line, + struct stat *sbuf, + char *file, +@@ -243,8 +256,10 @@ + reallink = g_strdup(link); + } + int linksize = strlen(reallink); +- cache_add_link(full_path, reallink, linksize+1); +- DEBUG(1, "cache_add_link: %s %s\n", full_path, reallink); ++ if (cache.on) { ++ cache_add_link(full_path, reallink, linksize+1); ++ DEBUG(1, "cache_add_link: %s %s\n", full_path, reallink); ++ } + if (linkbuf && linklen) { + if (linksize > linklen) linksize = linklen - 1; + strncpy(linkbuf, reallink, linksize); +@@ -257,8 +272,10 @@ + DEBUG(1, "filler: %s\n", file); + filler(h, file, &stat_buf); + } else { +- DEBUG(1, "cache_add_attr: %s\n", full_path); +- cache_add_attr(full_path, &stat_buf); ++ if (cache.on) { ++ DEBUG(1, "cache_add_attr: %s\n", full_path); ++ cache_add_attr(full_path, &stat_buf); ++ } + } + + DEBUG(2, "comparing %s %s\n", name, file); + diff --git a/package/curlftpfs/curlftpfs.mk b/package/curlftpfs/curlftpfs.mk new file mode 100644 index 0000000..9e77eb0 --- /dev/null +++ b/package/curlftpfs/curlftpfs.mk @@ -0,0 +1,14 @@ +############################################################# +# +# curlftpfs +# +############################################################# + +CURLFTPFS_VERSION = 0.9.2 +CURLFTPFS_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/curlftpfs/$(CURLFTPFS_VERSION) +CURLFTPFS_DEPENDENCIES = \ + libglib2 libfuse openssl libcurl \ + $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) \ + $(if $(BR2_ENABLE_LOCALE),,libiconv) + +$(eval $(autotools-package)) -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH v3] curlftpfs: new package 2012-07-30 14:09 ` [Buildroot] [PATCH v3] " Richard Braun @ 2012-07-30 14:37 ` Thomas Petazzoni 2012-07-30 16:12 ` [Buildroot] [PATCH v4] " Richard Braun 0 siblings, 1 reply; 8+ messages in thread From: Thomas Petazzoni @ 2012-07-30 14:37 UTC (permalink / raw) To: buildroot Hello, Le Mon, 30 Jul 2012 16:09:08 +0200, Richard Braun <rbraun@sceen.net> a ?crit : > package/Config.in | 1 + > package/curlftpfs/Config.in | 17 ++++++ > .../curlftpfs-000-fix-CURLOPT_INFILESIZE.patch | 11 ++++ > ...curlftpfs-001-free_ftpfs_file-memleak-fix.patch | 13 +++++ > .../curlftpfs-002-nocache-memleak-fix.patch | 58 ++++++++++++++++++++ Could you please include a description in each patch + Signed-off-by line, or if you're not the author, a reference to the original place, and possibly their upstreamable status? Thanks, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH v4] curlftpfs: new package 2012-07-30 14:37 ` Thomas Petazzoni @ 2012-07-30 16:12 ` Richard Braun 0 siblings, 0 replies; 8+ messages in thread From: Richard Braun @ 2012-07-30 16:12 UTC (permalink / raw) To: buildroot Signed-off-by: Richard Braun <rbraun@sceen.net> --- package/Config.in | 1 + package/curlftpfs/Config.in | 17 ++++++ .../curlftpfs-000-fix-CURLOPT_INFILESIZE.patch | 13 ++++ ...curlftpfs-001-free_ftpfs_file-memleak-fix.patch | 14 +++++ .../curlftpfs-002-nocache-memleak-fix.patch | 59 ++++++++++++++++++++ package/curlftpfs/curlftpfs.mk | 14 +++++ 6 files changed, 118 insertions(+), 0 deletions(-) create mode 100644 package/curlftpfs/Config.in create mode 100644 package/curlftpfs/curlftpfs-000-fix-CURLOPT_INFILESIZE.patch create mode 100644 package/curlftpfs/curlftpfs-001-free_ftpfs_file-memleak-fix.patch create mode 100644 package/curlftpfs/curlftpfs-002-nocache-memleak-fix.patch create mode 100644 package/curlftpfs/curlftpfs.mk diff --git a/package/Config.in b/package/Config.in index f664b8e..8b0188b 100644 --- a/package/Config.in +++ b/package/Config.in @@ -521,6 +521,7 @@ source "package/ctorrent/Config.in" source "package/cifs-utils/Config.in" source "package/conntrack-tools/Config.in" source "package/cups/Config.in" +source "package/curlftpfs/Config.in" if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/dhcp/Config.in" endif diff --git a/package/curlftpfs/Config.in b/package/curlftpfs/Config.in new file mode 100644 index 0000000..23c7547 --- /dev/null +++ b/package/curlftpfs/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_CURLFTPFS + bool "curlftpfs (FUSE)" + select BR2_PACKAGE_LIBFUSE + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE + select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE + select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_LIBCURL + depends on BR2_LARGEFILE + depends on BR2_USE_WCHAR # glib2 + help + CurlFtpFS is a filesystem for accessing FTP hosts based on FUSE + and libcurl. + +comment "curlftpfs requires a toolchain with LARGEFILE and WCHAR support" + depends on !BR2_LARGEFILE || !BR2_USE_WCHAR diff --git a/package/curlftpfs/curlftpfs-000-fix-CURLOPT_INFILESIZE.patch b/package/curlftpfs/curlftpfs-000-fix-CURLOPT_INFILESIZE.patch new file mode 100644 index 0000000..dc83af0 --- /dev/null +++ b/package/curlftpfs/curlftpfs-000-fix-CURLOPT_INFILESIZE.patch @@ -0,0 +1,13 @@ +Borrowed from the curlftpfs_0.9.2-5 Debian package. + +CURLOPT_INFILESIZE does not support -1 arg. This fix bug #556012. +--- curlftpfs-0.9.2/ftpfs.c.old 2009-12-13 14:12:25.000000000 +0100 ++++ curlftpfs-0.9.2/ftpfs.c 2009-12-13 14:12:32.000000000 +0100 +@@ -503,7 +503,6 @@ + + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_URL, fh->full_path); + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_UPLOAD, 1); +- curl_easy_setopt_or_die(fh->write_conn, CURLOPT_INFILESIZE, -1); + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READFUNCTION, write_data_bg); + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READDATA, fh); + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_LOW_SPEED_LIMIT, 1); diff --git a/package/curlftpfs/curlftpfs-001-free_ftpfs_file-memleak-fix.patch b/package/curlftpfs/curlftpfs-001-free_ftpfs_file-memleak-fix.patch new file mode 100644 index 0000000..4966c9d --- /dev/null +++ b/package/curlftpfs/curlftpfs-001-free_ftpfs_file-memleak-fix.patch @@ -0,0 +1,14 @@ +Borrowed from the curlftpfs_0.9.2-5 Debian package. + +Fix a memory leak. See Bug #587250. +--- a/ftpfs.c 2008-04-30 01:05:47.000000000 +0200 ++++ a/ftpfs.c.slesimple 2010-01-01 22:12:10.000000000 +0100 +@@ -615,6 +615,8 @@ static void free_ftpfs_file(struct ftpfs + sem_destroy(&fh->data_need); + sem_destroy(&fh->data_written); + sem_destroy(&fh->ready); ++ if (fh->buf.size) { buf_free(&fh->buf); } ++ if (fh->stream_buf.size) { buf_free(&fh->stream_buf); } + free(fh); + } + diff --git a/package/curlftpfs/curlftpfs-002-nocache-memleak-fix.patch b/package/curlftpfs/curlftpfs-002-nocache-memleak-fix.patch new file mode 100644 index 0000000..00a4dd6 --- /dev/null +++ b/package/curlftpfs/curlftpfs-002-nocache-memleak-fix.patch @@ -0,0 +1,59 @@ +Borrowed from the curlftpfs_0.9.2-5 Debian package. + +Fix a memory leak when cache is disabled. Closes: #614347. +diff -ur curlftpfs-0.9.2/cache.c curlftpfs-0.9.2-olexat/cache.c +--- curlftpfs-0.9.2/cache.c 2008-04-30 01:03:09.000000000 +0200 ++++ curlftpfs-0.9.2-olexat/cache.c 2011-02-04 16:43:05.000000000 +0100 +@@ -25,7 +25,7 @@ + time_t last_cleaned; + }; + +-static struct cache cache; ++struct cache cache; + + struct node { + struct stat stat; +diff -ur curlftpfs-0.9.2/ftpfs-ls.c curlftpfs-0.9.2-olexat/ftpfs-ls.c +--- curlftpfs-0.9.2/ftpfs-ls.c 2008-04-23 12:55:41.000000000 +0200 ++++ curlftpfs-0.9.2-olexat/ftpfs-ls.c 2011-02-07 17:23:37.000000000 +0100 +@@ -25,6 +25,13 @@ + #include "charset_utils.h" + #include "ftpfs-ls.h" + ++struct cache { ++ int on; ++ char incomplete[]; ++}; ++ ++extern struct cache cache; ++ + static int parse_dir_unix(const char *line, + struct stat *sbuf, + char *file, +@@ -243,8 +256,10 @@ + reallink = g_strdup(link); + } + int linksize = strlen(reallink); +- cache_add_link(full_path, reallink, linksize+1); +- DEBUG(1, "cache_add_link: %s %s\n", full_path, reallink); ++ if (cache.on) { ++ cache_add_link(full_path, reallink, linksize+1); ++ DEBUG(1, "cache_add_link: %s %s\n", full_path, reallink); ++ } + if (linkbuf && linklen) { + if (linksize > linklen) linksize = linklen - 1; + strncpy(linkbuf, reallink, linksize); +@@ -257,8 +272,10 @@ + DEBUG(1, "filler: %s\n", file); + filler(h, file, &stat_buf); + } else { +- DEBUG(1, "cache_add_attr: %s\n", full_path); +- cache_add_attr(full_path, &stat_buf); ++ if (cache.on) { ++ DEBUG(1, "cache_add_attr: %s\n", full_path); ++ cache_add_attr(full_path, &stat_buf); ++ } + } + + DEBUG(2, "comparing %s %s\n", name, file); + diff --git a/package/curlftpfs/curlftpfs.mk b/package/curlftpfs/curlftpfs.mk new file mode 100644 index 0000000..9e77eb0 --- /dev/null +++ b/package/curlftpfs/curlftpfs.mk @@ -0,0 +1,14 @@ +############################################################# +# +# curlftpfs +# +############################################################# + +CURLFTPFS_VERSION = 0.9.2 +CURLFTPFS_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/curlftpfs/$(CURLFTPFS_VERSION) +CURLFTPFS_DEPENDENCIES = \ + libglib2 libfuse openssl libcurl \ + $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) \ + $(if $(BR2_ENABLE_LOCALE),,libiconv) + +$(eval $(autotools-package)) -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] curlftpfs: new package 2012-07-21 15:31 ` Thomas Petazzoni 2012-07-21 16:11 ` Richard Braun @ 2012-07-21 19:36 ` Gustavo Zacarias 1 sibling, 0 replies; 8+ messages in thread From: Gustavo Zacarias @ 2012-07-21 19:36 UTC (permalink / raw) To: buildroot On 07/21/12 12:31, Thomas Petazzoni wrote: > This "Hardware handling" menu is becoming quite crazy. curlftpfs > clearly has nothing to do with Hardware handling (and many other things > in there). > > Even "cramfs" for example is not quite Hardware handling related. Maybe > we should put more things in the "System tools" menu, or create a > "Filesystems tools" menu or something. Suggestions welcome. > > Otherwise, looks good. > > Thomas Filesystems++ :) ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-07-30 16:12 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-07-21 15:27 [Buildroot] [PATCH] curlftpfs: new package Richard Braun 2012-07-21 15:31 ` Thomas Petazzoni 2012-07-21 16:11 ` Richard Braun 2012-07-24 11:44 ` [Buildroot] [PATCH v2] " Richard Braun 2012-07-30 14:09 ` [Buildroot] [PATCH v3] " Richard Braun 2012-07-30 14:37 ` Thomas Petazzoni 2012-07-30 16:12 ` [Buildroot] [PATCH v4] " Richard Braun 2012-07-21 19:36 ` [Buildroot] [PATCH] " Gustavo Zacarias
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox