memcpy(output->data, obj.data, obj.size);
return osl_close_disk_object(&obj);
}
+
static int com_catblob(callback_function *f, int fd, int argc,
char * const * const argv)
{
if (!*argv[1]) /* empty name is reserved of the dummy row */
return -E_BLOB_SYNTAX;
ret = send_standard_callback_request(1, argv + 1, f, &cat_output);
- if (ret >= 0 && cat_output.data)
- ret = send_buffer(fd, (char *)cat_output.data);
+ if (ret > 0)
+ ret = send_bin_buffer(fd, (char *)cat_output.data, cat_output.size);
free(cat_output.data);
return ret;
return osl_add_row(table, objs);
}
-static int com_addblob(callback_function *f, __a_unused int fd, int argc,
+static int com_addblob(callback_function *f, int fd, int argc,
char * const * const argv)
{
struct osl_object arg_obj;
PARA_NOTICE_LOG("argv[1]: %s\n", argv[1]);
arg_obj.size = strlen(argv[1]) + 1;
arg_obj.data = (char *)argv[1];
- return stdin_command(&arg_obj, f, 10 * 1024 * 1024, NULL);
+ return stdin_command(fd, &arg_obj, f, 10 * 1024 * 1024, NULL);
}
static int com_rmblob_callback(struct osl_table *table,