فهرست منبع

update CI, define text buf size

Struan Clark 2 سال پیش
والد
کامیت
091dac3f63
3فایلهای تغییر یافته به همراه36 افزوده شده و 28 حذف شده
  1. 3 1
      .github/workflows/build.yml
  2. 3 1
      .github/workflows/release.yml
  3. 30 26
      views/flipbip_scene_1.c

+ 3 - 1
.github/workflows/build.yml

@@ -25,4 +25,6 @@ jobs:
         with:
           path: 'applications_user/FlipBIP'
       - name: Build FAPs
-        run: ./fbt COMPACT=1 DEBUG=0 faps
+        run: ./fbt COMPACT=1 DEBUG=0 faps
+      - name: Check FlipBIP Built
+        run: test -f build/f7-firmware-C/.extapps/FlipBIP.fap

+ 3 - 1
.github/workflows/release.yml

@@ -25,7 +25,9 @@ jobs:
           path: 'applications_user/FlipBIP'
       - name: Build FAPs
         run: ./fbt COMPACT=1 DEBUG=0 faps
-      - name: Get tag
+      - name: Check FlipBIP Built
+        run: test -f build/f7-firmware-C/.extapps/FlipBIP.fap
+      - name: Get Tag
         id: tag
         uses: dawidd6/action-get-tag@v1
         with:

+ 30 - 26
views/flipbip_scene_1.c

@@ -22,7 +22,9 @@
 #define DERIV_ACCOUNT 0
 #define DERIV_CHANGE 0
 
-#define MAX_ADDR_LEN 42 + 1 // 42 = max length of address + null terminator
+#define MAX_TEXT_LEN 30 // 30 = max length of text
+#define MAX_TEXT_BUF (MAX_TEXT_LEN + 1) // max length of text + null terminator
+#define MAX_ADDR_BUF (42 + 1) // 42 = max length of address + null terminator
 #define NUM_ADDRS 6
 
 #define PAGE_LOADING 0
@@ -116,13 +118,15 @@ static void flipbip_scene_1_init_address(
     uint32_t addr_index) {
     //s_busy = true;
 
-    // Buffer for address serialization
-    const size_t buflen = 40;
-    char buf[40 + 1] = {0};
+    // buffer for address serialization
+    // subtract 2 for "0x", 1 for null terminator
+    const size_t buflen = MAX_ADDR_BUF - (2 + 1);
+    // subtract 2 for "0x"
+    char buf[MAX_ADDR_BUF - 2] = {0};
 
     // Use static node for address generation
     memcpy(s_addr_node, node, sizeof(HDNode));
-    memzero(addr_text, MAX_ADDR_LEN);
+    memzero(addr_text, MAX_ADDR_BUF);
 
     hdnode_private_ckd(s_addr_node, addr_index);
     hdnode_fill_public_key(s_addr_node);
@@ -161,8 +165,8 @@ static void
     flipbip_scene_1_draw_generic(const char* text, const size_t line_len, const bool chunk) {
     // Split the text into parts
     size_t len = line_len;
-    if(len > 30) {
-        len = 30;
+    if(len > MAX_TEXT_LEN) {
+        len = MAX_TEXT_LEN;
     }
     for(size_t si = 1; si <= 6; si++) {
         char* ptr = NULL;
@@ -180,7 +184,7 @@ static void
         else if(si == 6)
             ptr = s_disp_text6;
 
-        memzero(ptr, 30 + 1);
+        memzero(ptr, MAX_TEXT_BUF);
         strncpy(ptr, text + ((si - 1) * len), len);
         // add a space every 4 characters and shift the text
         if(len < 23 && chunk) {
@@ -231,9 +235,9 @@ static void flipbip_scene_1_draw_mnemonic(const char* mnemonic) {
         else if(mi == 6)
             ptr = s_disp_text6;
 
-        memzero(ptr, 30 + 1);
-        if(strlen(mnemonic_part) > 30) {
-            strncpy(ptr, mnemonic_part, 30);
+        memzero(ptr, MAX_TEXT_BUF);
+        if(strlen(mnemonic_part) > MAX_TEXT_LEN) {
+            strncpy(ptr, mnemonic_part, MAX_TEXT_LEN);
         } else {
             strncpy(ptr, mnemonic_part, strlen(mnemonic_part));
         }
@@ -260,12 +264,12 @@ static void flipbip_scene_1_draw_seed(FlipBipScene1Model* const model) {
 }
 
 static void flipbip_scene_1_clear_text() {
-    memzero((void*)s_disp_text1, 30 + 1);
-    memzero((void*)s_disp_text2, 30 + 1);
-    memzero((void*)s_disp_text3, 30 + 1);
-    memzero((void*)s_disp_text4, 30 + 1);
-    memzero((void*)s_disp_text5, 30 + 1);
-    memzero((void*)s_disp_text6, 30 + 1);
+    memzero((void*)s_disp_text1, MAX_TEXT_BUF);
+    memzero((void*)s_disp_text2, MAX_TEXT_BUF);
+    memzero((void*)s_disp_text3, MAX_TEXT_BUF);
+    memzero((void*)s_disp_text4, MAX_TEXT_BUF);
+    memzero((void*)s_disp_text5, MAX_TEXT_BUF);
+    memzero((void*)s_disp_text6, MAX_TEXT_BUF);
 }
 
 void flipbip_scene_1_draw(Canvas* canvas, FlipBipScene1Model* model) {
@@ -472,8 +476,8 @@ static int flipbip_scene_1_model_init(
 
     // Initialize addresses
     for(uint8_t a = 0; a < NUM_ADDRS; a++) {
-        model->recv_addresses[a] = malloc(MAX_ADDR_LEN);
-        memzero(model->recv_addresses[a], MAX_ADDR_LEN);
+        model->recv_addresses[a] = malloc(MAX_ADDR_BUF);
+        memzero(model->recv_addresses[a], MAX_ADDR_BUF);
         flipbip_scene_1_init_address(model->recv_addresses[a], node, coin, a);
 
         // Save QR code file
@@ -597,7 +601,7 @@ void flipbip_scene_1_exit(void* context) {
                 free((void*)model->xprv_extended);
                 free((void*)model->xpub_extended);
                 for(int a = 0; a < NUM_ADDRS; a++) {
-                    memzero((void*)model->recv_addresses[a], MAX_ADDR_LEN);
+                    memzero((void*)model->recv_addresses[a], MAX_ADDR_BUF);
                     free((void*)model->recv_addresses[a]);
                 }
             }
@@ -696,12 +700,12 @@ FlipBipScene1* flipbip_scene_1_alloc() {
     s_addr_node = (HDNode*)malloc(sizeof(HDNode));
 
     // allocate the display text
-    s_disp_text1 = (char*)malloc(30 + 1);
-    s_disp_text2 = (char*)malloc(30 + 1);
-    s_disp_text3 = (char*)malloc(30 + 1);
-    s_disp_text4 = (char*)malloc(30 + 1);
-    s_disp_text5 = (char*)malloc(30 + 1);
-    s_disp_text6 = (char*)malloc(30 + 1);
+    s_disp_text1 = (char*)malloc(MAX_TEXT_BUF);
+    s_disp_text2 = (char*)malloc(MAX_TEXT_BUF);
+    s_disp_text3 = (char*)malloc(MAX_TEXT_BUF);
+    s_disp_text4 = (char*)malloc(MAX_TEXT_BUF);
+    s_disp_text5 = (char*)malloc(MAX_TEXT_BUF);
+    s_disp_text6 = (char*)malloc(MAX_TEXT_BUF);
 
     return instance;
 }