diff options
author | Kristoffer Ericson <kristoffer_e1@hotmail.com> | 2007-01-11 19:42:20 +0000 |
---|---|---|
committer | Kristoffer Ericson <kristoffer_e1@hotmail.com> | 2007-01-11 19:42:20 +0000 |
commit | 3b01a13a70b1c071f29a0ba70f26dbdb335dced9 (patch) | |
tree | bdf812f39da7b3ab1d1fe52e331a9a279dc967ba /packages/parted | |
parent | ca9c8ed1d68721ada42a881f799f6f75fc4ba2a3 (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_empty | 0 | ||||
-rw-r--r-- | packages/parted/parted-1.8.0/memory_allocation.patch | 42 |
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 (); + |