diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c
index 1eb92e54176148081491ff449ba1107f90eaf641..07011e99a850fafa7475d02451c8f358986b7f3c 100644
--- a/drivers/dfu/dfu.c
+++ b/drivers/dfu/dfu.c
@@ -74,6 +74,11 @@ unsigned char *dfu_free_buf(void)
 	return dfu_buf;
 }
 
+unsigned long dfu_get_buf_size(void)
+{
+	return dfu_buf_size;
+}
+
 unsigned char *dfu_get_buf(void)
 {
 	char *s;
diff --git a/include/dfu.h b/include/dfu.h
index cc140449271d7f8db2b72c93a5d9d614ca74f939..9a50721104c35292cd1d7899a3e80d2302823d48 100644
--- a/include/dfu.h
+++ b/include/dfu.h
@@ -131,6 +131,7 @@ bool dfu_reset(void);
 int dfu_init_env_entities(char *interface, int dev);
 unsigned char *dfu_get_buf(void);
 unsigned char *dfu_free_buf(void);
+unsigned long dfu_get_buf_size(void);
 
 int dfu_read(struct dfu_entity *de, void *buf, int size, int blk_seq_num);
 int dfu_write(struct dfu_entity *de, void *buf, int size, int blk_seq_num);