Stlink: рдЬреАрд╕реАрд╕реА 11 рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рди рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рджрд┐рд╕ре░ 2020  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: stlink-org/stlink

рдореИрдВ GCC 11 рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд╛рде рд╕реНрдЯрд┐рдВрдХ 1.6.1 рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдлреЗрдбреЛрд░рд╛ рдЬреАрдПрдирдпреВ / рд▓рд┐рдирдХреНрд╕ рд░реЙрд╣рд╛рдЗрдбред
рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ:

/builddir/build/BUILD/stlink-1.6.1/src/st-util/gdb-server.c:90:22: error: 'stlink_open_usb' accessing 64 bytes in a region of size 28 [-Werror=stringop-overflow=]
   90 |                 sl = stlink_open_usb(st->logging_level, st->reset, serialnumber, 0);
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/stlink-1.6.1/src/st-util/gdb-server.c: In function 'serve':
/builddir/build/BUILD/stlink-1.6.1/src/st-util/gdb-server.c:90:22: note: referencing argument 3 of type 'char *'
In file included from /builddir/build/BUILD/stlink-1.6.1/include/stlink.h:297,
                 from /builddir/build/BUILD/stlink-1.6.1/src/st-util/gdb-server.c:27:
/builddir/build/BUILD/stlink-1.6.1/src/usb.h:71:15: note: in a call to function 'stlink_open_usb'
   71 |     stlink_t *stlink_open_usb(enum ugly_loglevel verbose, int reset, char serial[STLINK_SERIAL_MAX_SIZE], int freq);
      |               ^~~~~~~~~~~~~~~
In function 'do_connect',
    inlined from 'do_connect' at /builddir/build/BUILD/stlink-1.6.1/src/st-util/gdb-server.c:87:18,
    inlined from 'main' at /builddir/build/BUILD/stlink-1.6.1/src/st-util/gdb-server.c:212:10:
/builddir/build/BUILD/stlink-1.6.1/src/st-util/gdb-server.c:90:22: error: 'stlink_open_usb' accessing 64 bytes in a region of size 28 [-Werror=stringop-overflow=]
   90 |                 sl = stlink_open_usb(st->logging_level, st->reset, serialnumber, 0);
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░реЗрдВред

bucompilation buneeds-fix olinux staturesolved

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ STLINK_SERIAL_MAX_SIZE рдкрд░рд┐рднрд╛рд╖рд┐рдд 28 рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП?

рдЖрдк src/st-util/gdb-server.c рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

static char serialnumber[28] = {0};

рд╕реЗрд╡рд╛ рдореЗрд░реЗ

static char serialnumber[STLINK_SERIAL_MAX_SIZE] = {0};

рдореИрдВ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдлрд┐рдХреНрд╕ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред

@Vascom рдореИрдВ рднреАред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

ps рдЖрдкрдиреЗ рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд╣реАрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╡рд░реНрдгрди рдмрдирд╛рдпрд╛ рд╣реИред @ рдирд╛рдЗрдЯрд╡реЙрдХрд░ -87 рдЗрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИред # 906 рджреЗрдЦреЗрдВ

рд╣рд╛рдБ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдВрдХрд▓рди рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рднрд░рд╛ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╡рд░рдг рднреА рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рддреЛ рдЕрдЧрд▓реА рдмрд╛рд░ рдХреГрдкрдпрд╛ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рдЖрдк src/st-util/gdb-server.c рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

static char serialnumber[28] = {0};

рд╕реЗрд╡рд╛ рдореЗрд░реЗ

static char serialnumber[STLINK_SERIAL_MAX_SIZE] = {0};

рдореИрдВрдиреЗ рд▓рдЧрднрдЧ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ рдХрд┐ (рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ Fedora рдХреЗ рд╕рд╛рде gcc-11 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рдерд╛)ред рдЗрд╕рдХреЗ рд╕рд╛рде рдореЗрд░реА рдЪрд┐рдВрддрд╛ рдпрд╣ рдереА рдХрд┐ gdb-server.c рдореЗрдВ рдпрд╣ рд▓реВрдк рдерд╛:
for (size_t k = 0; j> = 0 && k <sizeof (рдХреНрд░рдорд╛рдВрдХ); ++ k, j - 2) {{
рдЪрд╛рд░ рдмрдлрд░ [3] = {0};
рдореЗрдореНрдкреА (рдмрдлрд░, рдСрдкреНрдЯрд╛рд░рдЧ + рдЬреЗ, 2);
рд╕реАрд░рд┐рдпрд▓рдирдВрдмрд░ [рд▓рдВрдмрд╛рдИ - рдХреЗ] = (uint8_t) рд╕реНрдЯреНрд░рдЯреЛрд▓ (рдмрдлрд░, NULL, 16);

рдЬреЛ рдХрд┐ "рд╕реАрд░рд┐рдпрд▓рдирдВрдмрд░" рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдЧрд╛ред рдЗрд░рд╛рджреЗ рдпрд╛ рдХреЛрдб рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЬрд╛рдирдиреЗ рдХреЗ рдмрд┐рдирд╛ рдореБрдЭреЗ "рд╕реАрд░рдирдВрдмрд░" рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рдЬ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рд╣реБрдЖред

рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдереЛрдбрд╝реА рдкреГрд╖реНрдарднреВрдорд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдПред gcc-11 рдиреЗ рд╕рд░рдгреА рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реАрдорд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХреЛ рдЬреЛрдбрд╝рд╛ рд╣реИред рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдпрджрд┐ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рдирд┐рд╢реНрдЪрд┐рдд рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рддрд░реНрдХ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЬреАрд╕реАрд╕реА рдорд╛рди рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реЗ рд╕рд░рдгреА рдХреЛ рд╕рдВрднрд╡рддрдГ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

stlink_open_usb 64 рдмрд╛рдЗрдЯ рдХреИрд░реЗрдХреНрдЯрд░ рдРрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ 3 рддрд░реНрдХ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рднреА "рд╕реАрд░рд┐рдпрд▓рдирдВрдмрд░" рд╕рд┐рд░реНрдл 28 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ рдФрд░ рдЬреАрд╕реАрд╕реА рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯрд┐рдиреЗрд▓_рдУрдкреЗрди_рд╕рдм рджреНрд╡рд╛рд░рд╛ "рд╕реАрд░рдирдВрдмрд░" рддрд░реНрдХ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЖрдЙрдЯ-рдСрдл-рд╕реАрдорд╛рдПрдВ рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕