summaryrefslogtreecommitdiff
path: root/packages/parted
diff options
context:
space:
mode:
authorKristoffer Ericson <kristoffer_e1@hotmail.com>2007-01-11 19:42:20 +0000
committerKristoffer Ericson <kristoffer_e1@hotmail.com>2007-01-11 19:42:20 +0000
commit3b01a13a70b1c071f29a0ba70f26dbdb335dced9 (patch)
treebdf812f39da7b3ab1d1fe52e331a9a279dc967ba /packages/parted
parentca9c8ed1d68721ada42a881f799f6f75fc4ba2a3 (diff)
parted/parted-1.8.0/memory_allocation.patch : Addition of patch
* Parted doesnt work on ARM when used with glibc 2.5 This patch although not fixing the issue adds some cleanups. Supplied by maintainers.
Diffstat (limited to 'packages/parted')
-rw-r--r--packages/parted/parted-1.8.0/.mtn2git_empty0
-rw-r--r--packages/parted/parted-1.8.0/memory_allocation.patch42
2 files changed, 42 insertions, 0 deletions
diff --git a/packages/parted/parted-1.8.0/.mtn2git_empty b/packages/parted/parted-1.8.0/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/parted/parted-1.8.0/.mtn2git_empty
diff --git a/packages/parted/parted-1.8.0/memory_allocation.patch b/packages/parted/parted-1.8.0/memory_allocation.patch
new file mode 100644
index 0000000000..ba3709680b
--- /dev/null
+++ b/packages/parted/parted-1.8.0/memory_allocation.patch
@@ -0,0 +1,42 @@
+--- parted-1.8.0/libparted/exception.c_orig 2006-12-11 19:44:23.000000000 +0000
++++ parted-1.8.0/libparted/exception.c 2006-12-11 19:47:53.000000000 +0000
+@@ -231,6 +231,9 @@
+ PedExceptionOption ex_opts, const char* message, ...)
+ {
+ va_list arg_list;
++ int result;
++ static int size = 1000;
++
+
+ if (ex)
+ ped_exception_catch ();
+@@ -239,16 +242,22 @@
+ if (!ex)
+ goto no_memory;
+
+- ex->message = (char*) malloc (8192);
+- if (!ex->message)
+- goto no_memory;
+-
+ ex->type = ex_type;
+ ex->options = ex_opts;
+
+- va_start (arg_list, message);
+- vsnprintf (ex->message, 8192, message, arg_list);
+- va_end (arg_list);
++ while (1) {
++ ex->message = (char*) malloc (size);
++ if (!ex->message)
++ goto no_memory;
++ va_start (arg_list, message);
++ result = vsnprintf (ex->message, size, message, arg_list);
++ va_end (arg_list);
++
++ if (result > -1 && result < size)
++ break;
++ size += 10;
++ }
++
+
+ return do_throw ();
+