+/**
+ * Allocate memory dynamically instead of on the stack. This
+ * is important w/embedded hosts.
+ */
+static int image_mot_buffer_complete(struct image *image)
+{
+ char *lpszLine = malloc(1023);
+ if (lpszLine == NULL)
+ {
+ LOG_ERROR("Out of memory");
+ return ERROR_FAIL;
+ }
+ struct imagesection *section = malloc(sizeof(struct imagesection) * IMAGE_MAX_SECTIONS);
+ if (section == NULL)
+ {
+ free(lpszLine);
+ LOG_ERROR("Out of memory");
+ return ERROR_FAIL;
+ }
+ int retval;
+
+ retval = image_mot_buffer_complete_inner(image, lpszLine, section);
+
+ free(section);
+ free(lpszLine);
+
+ return retval;
+}
+
+
+int image_open(struct image *image, const char *url, const char *type_string)