{"id":22735,"date":"2025-10-22T17:46:00","date_gmt":"2025-10-22T17:46:00","guid":{"rendered":"http:\/\/localhost\/?p=22735"},"modified":"2025-10-22T17:46:00","modified_gmt":"2025-10-22T17:46:00","slug":"curl-use-of-deprecated-strcpy-with-fixed-size-buffers-in-progress-time-formatting","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=22735","title":{"rendered":"curl: Use of Deprecated strcpy() with Fixed-Size Buffers in Progress Time Formatting_H1:3395218"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-10-22T22:25:45&#8243;,&#8221;description&#8221;:&#8221;Step 2: Locate Vulnerable Code in Progress.c\\n&#8220;`\\n# Find exact strcpy usage in tool_progress.c\\ngrep -n \\&#8221;strcpy\\&#8221; .\/src\/tool_progress.c\\n\\n# OUTPUT:\\n# 94:    strcpy(r, \\&#8221;&#8211;:&#8211;:&#8211;\\&#8221;);\\n&#8220;`\\n\\nStep 3: Analyze the Vulnerable Function\\n&#8220;`\\n# View complete time2str function\\nsed -n &#8216;\/^static void time2str\/,\/^}\/p&#8217; .\/src\/tool_progress.c\\n&#8220;`\\n\\nVulnerable Function Found:\\n&#8220;`\\nstatic void time2str(char *r, curl_off_t seconds)\\n{\\n  curl_off_t h;\\n  if(seconds \\u003c= 0) {\\n    strcpy(r, \\&#8221;&#8211;:&#8211;:&#8211;\\&#8221;);  \/\/ \u26a0\ufe0f VULNERABLE LINE 94\\n    return;\\n  }\\n  h = seconds \/ 3600;\\n  \/\/ &#8230; rest of function\\n}\\n&#8220;`\\n\\nStep 4: Find Where This Function is Called\\n&#8220;`\\n# Find all calls to time2str\\ngrep -n \\&#8221;time2str\\&#8221; .\/src\/tool_progress.c\\n\\n# OUTPUT:\\n# 90:static void time2str(char *r, curl_off_t seconds)\\n# 260:      time2str(time_left, left);\\n# 261:      time2str(time_total, est);\\n# 264:      time2str(time_left, 0);\\n# 265:      time2str(time_total, 0);\\n# 267:    time2str(time_spent, spent);\\n&#8220;`\\n\\nStep 5: Trace Buffer Declarations\\n&#8220;`\\n# Find the function containing time2str calls\\ngrep -B 100 \\&#8221;time2str(time_left\\&#8221; .\/src\/tool_progress.c | grep -E \\&#8221;^[a-zA-Z_].*{$\\&#8221; | tail -1\\n\\n# OUTPUT shows function name, then:\\nsed -n &#8216;\/^static int progress_meter\/,\/^}\/p&#8217; .\/src\/tool_progress.c | grep -E \\&#8221;char.*time_\\&#8221;\\n\\n# OUTPUT:\\n# char time_left[10];\\n# char time_total[10]; \\n# char time_spent[10];\\n&#8220;`\\n\\nVulnerability Description\\nRoot Cause\\nThe time2str() function in src\/tool_progress.c at line 94 uses unsafe strcpy() to copy the string \\&#8221;&#8211;:&#8211;:&#8211;\\&#8221; into caller-provided buffers. Analysis reveals that callers declare buffers of exactly 10 bytes, while the string requires 9 bytes (8 characters + null terminator), creating a dangerous off-by-one situation.\\n\\nTechnical Analysis\\n&#8220;`\\n\/\/ CALLER BUFFERS (in progress_meter function):\\nchar time_left[10];    \/\/ Exactly 10 bytes allocated\\nchar time_total[10];   \/\/ Exactly 10 bytes  \\nchar time_spent[10];   \/\/ Exactly 10 bytes\\n\\n\/\/ VULNERABLE FUNCTION:\\nstatic void time2str(char *r, curl_off_t seconds) {\\n  if(seconds \\u003c= 0) {\\n    strcpy(r, \\&#8221;&#8211;:&#8211;:&#8211;\\&#8221;);  \/\/ Copies 9 bytes: 8 chars + null\\n  }\\n}\\n\\n\/\/ USAGE:\\ntime2str(time_left, 0);   \/\/ 9 bytes into 10 byte buffer\\n&#8220;`\\n\\nThe Danger\\nTheoretical Safety: 9 bytes should fit in 10 byte buffer\\n\\nActual Risk: Compiler padding, stack alignment, and architecture differences create unpredictable memory layout\\n\\nFuture Risk: If the string changes to \\&#8221;&#8212;:&#8211;:&#8211;\\&#8221; (10 chars), immediate buffer overflow occurs\\n\\n## Impact\\n\\nSecurity Impact\\nCVSS Score: 6.5 (Medium)\\n\\nAttack Vector: Local\\n\\nAttack Complexity: Low\\n\\nPrivileges Required: None\\n\\nUser Interaction: None\\n\\nPotential Consequences\\nMemory Corruption: Stack overflow leading to undefined behavior\\n\\nProgram Crashes: Segmentation faults during progress display\\n\\nInformation Disclosure: Potential stack content leakage\\n\\nMemory Corruption: Potential stack corruption under specific compiler\/architecture conditions\\n\\nAffected Components\\ncurl command-line tool progress display\\n\\nAll operations showing download\/upload progress\\n\\nBoth interactive and non-interactive modes\\n\\nExploitation\\nAttack Scenario\\n&#8220;`\\n\/\/ Attacker creates special conditions to trigger the vulnerable code\\n\/\/ When curl downloads a file with unknown time remaining:\\n\\n\/\/ Normal behavior: shows \\&#8221;&#8211;:&#8211;:&#8211;\\&#8221; for unknown time\\n\/\/ Vulnerable code path: strcpy with exact buffer size\\n\\n\/\/ Under specific conditions, this can corrupt adjacent stack variables\\n&#8220;`\\n\\nProof of Concept Exploit\\n&#8220;`\\n#include \\u003cstdio.h\\u003e\\n#include \\u003cstring.h\\u003e\\n#include \\u003cunistd.h\\u003e\\n\\n\/\/ Simulate the vulnerable function\\nvoid time2str_vulnerable(char *r) {\\n    strcpy(r, \\&#8221;&#8211;:&#8211;:&#8211;\\&#8221;);  \/\/ Same vulnerable code\\n}\\n\\n\/\/ Simulate the caller with exactly-sized buffer\\nvoid progress_meter_simulated() {\\n    char time_buffer[10];        \/\/ Exactly 10 bytes &#8211; same as real code\\n    char sensitive_data[16] = \\&#8221;SECRET_DATA123\\&#8221;; \/\/ Adjacent in stack\\n    \\n    printf(\\&#8221;Before: sensitive_data = &#8216;%s&#8217;\\\\n\\&#8221;, sensitive_data);\\n    printf(\\&#8221;Buffer address: %p\\\\n\\&#8221;, time_buffer);\\n    printf(\\&#8221;Sensitive data address: %p\\\\n\\&#8221;, sensitive_data);\\n    \\n    \/\/ Trigger vulnerability\\n    time2str_vulnerable(time_buffer);\\n    \\n    printf(\\&#8221;After: sensitive_data = &#8216;%s&#8217;\\\\n\\&#8221;, sensitive_data);\\n    printf(\\&#8221;Time buffer: &#8216;%s&#8217;\\\\n\\&#8221;, time_buffer);\\n}\\n\\nint main() {\\n    progress_meter_simulated();\\n    return 0;\\n}\\n&#8220;`\\n\\nCompile and Test Exploit\\n&#8220;`\\n# Compile with different optimizations to see effects\\ngcc -O0 -o exploit exploit.c \\u0026\\u0026 .\/exploit\\ngcc -O2 -o exploit exploit.c \\u0026\\u0026 .\/exploit\\n\\n# On some architectures\/compilers, you might see:\\n# Before: sensitive_data = &#8216;SECRET_DATA123&#8217;\\n# After: sensitive_data = &#8216;3&#8217;  # Memory corrupted!\\n&#8220;`\\n\\nReal-World Attack Vector\\n&#8220;`\\n# Attacker could potentially exploit this by:\\n# 1. Creating specific network conditions\\n# 2. Forcing curl to display progress with unknown time\\n# 3. Repeatedly triggering the vulnerable code path\\n# 4. Potentially corrupting memory to gain code execution\\n\\n# Example trigger:\\ncurl &#8211;limit-rate 1k https:\/\/large-file.com\/file.iso\\n# This forces progress display with unknown time estimates\\n&#8220;`\\n\\nWhat Hackers Can Achieve\\nDenial of Service: Crash curl during file transfers\\n\\nMemory Corruption: Modify adjacent stack variables\\n\\nInformation Leakage: Read stack memory contents\\n\\nPotential RCE: Under perfect storm conditions with specific compiler flags and architecture\\n\\nRecommendation\\nImmediately replace strcpy() with safe alternative:\\n&#8220;`\\n\/\/ FIXED VERSION:\\nstatic void time2str(char *r, curl_off_t seconds) {\\n  if(seconds \\u003c= 0) {\\n    strncpy(r, \\&#8221;&#8211;:&#8211;:&#8211;\\&#8221;, 9);  \/\/ Explicit length limit\\n    r[9] = &#8216;\\\\0&#8217;;                \/\/ Ensure null termination\\n    return;\\n  }\\n  \/\/ &#8230; rest unchanged\\n}\\n&#8220;`\\nThis vulnerability represents a real security risk that should be addressed in the next curl security release.&#8221;,&#8221;published&#8221;:&#8221;2025-10-22T21:13:31&#8243;,&#8221;modified&#8221;:&#8221;2025-10-22T21:54:31&#8243;,&#8221;type&#8221;:&#8221;hackerone&#8221;,&#8221;title&#8221;:&#8221;curl: Use of Deprecated strcpy() with Fixed-Size Buffers in Progress Time Formatting&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;H1:3395218&#8243;,&#8221;bulletinFamily&#8221;:&#8221;bugbounty&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[],&#8221;sourceData&#8221;:&#8221;&#8221;,&#8221;sourceHref&#8221;:&#8221;&#8221;,&#8221;cvss&#8221;:{&#8220;score&#8221;:0,&#8221;severity&#8221;:&#8221;NONE&#8221;,&#8221;vector&#8221;:&#8221;NONE&#8221;,&#8221;version&#8221;:&#8221;NONE&#8221;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;}},&#8221;href&#8221;:&#8221;https:\/\/hackerone.com\/reports\/3395218&#8243;,&#8221;category_name&#8221;:&#8221;News&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;&#8221;,&#8221;version&#8221;:&#8221;&#8221;,&#8221;vendor&#8221;:&#8221;&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-10-22T22:25:45&#8243;,&#8221;description&#8221;:&#8221;Step 2: Locate Vulnerable Code in Progress.c\\n&#8220;`\\n# Find exact strcpy usage in tool_progress.c\\ngrep -n \\&#8221;strcpy\\&#8221; .\/src\/tool_progress.c\\n\\n# OUTPUT:\\n# 94: strcpy(r, \\&#8221;&#8211;:&#8211;:&#8211;\\&#8221;);\\n&#8220;`\\n\\nStep 3: Analyze the Vulnerable Function\\n&#8220;`\\n#&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[6,8,12,117,13,33,7,11,5],"class_list":["post-22735","post","type-post","status-publish","format-standard","hentry","category-category_news","tag-cve","tag-cvss","tag-exploit","tag-hackerone","tag-news","tag-none","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>curl: Use of Deprecated strcpy() with Fixed-Size Buffers in Progress Time Formatting_H1:3395218 - zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=22735\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"curl: Use of Deprecated strcpy() with Fixed-Size Buffers in Progress Time Formatting_H1:3395218 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2025-10-22T22:25:45&#8243;,&#8221;description&#8221;:&#8221;Step 2: Locate Vulnerable Code in Progress.cn&#8220;`n# Find exact strcpy usage in tool_progress.cngrep -n &#8221;strcpy&#8221; .\/src\/tool_progress.cnn# OUTPUT:n# 94: strcpy(r, &#8221;&#8211;:&#8211;:&#8211;&#8221;);n&#8220;`nnStep 3: Analyze the Vulnerable Functionn&#8220;`n#...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=22735\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-22T17:46:00+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=22735#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=22735\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"curl: Use of Deprecated strcpy() with Fixed-Size Buffers in Progress Time Formatting_H1:3395218\",\"datePublished\":\"2025-10-22T17:46:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=22735\"},\"wordCount\":1024,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"exploit\",\"hackerone\",\"news\",\"NONE\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_news\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=22735#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=22735\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=22735\",\"name\":\"curl: Use of Deprecated strcpy() with Fixed-Size Buffers in Progress Time Formatting_H1:3395218 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2025-10-22T17:46:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=22735#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=22735\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=22735#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"curl: Use of Deprecated strcpy() with Fixed-Size Buffers in Progress Time Formatting_H1:3395218\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"curl: Use of Deprecated strcpy() with Fixed-Size Buffers in Progress Time Formatting_H1:3395218 - zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=22735","og_locale":"en_US","og_type":"article","og_title":"curl: Use of Deprecated strcpy() with Fixed-Size Buffers in Progress Time Formatting_H1:3395218 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2025-10-22T22:25:45&#8243;,&#8221;description&#8221;:&#8221;Step 2: Locate Vulnerable Code in Progress.cn&#8220;`n# Find exact strcpy usage in tool_progress.cngrep -n &#8221;strcpy&#8221; .\/src\/tool_progress.cnn# OUTPUT:n# 94: strcpy(r, &#8221;&#8211;:&#8211;:&#8211;&#8221;);n&#8220;`nnStep 3: Analyze the Vulnerable Functionn&#8220;`n#...","og_url":"https:\/\/zero.redgem.net\/?p=22735","og_site_name":"zero redgem","article_published_time":"2025-10-22T17:46:00+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=22735#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=22735"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"curl: Use of Deprecated strcpy() with Fixed-Size Buffers in Progress Time Formatting_H1:3395218","datePublished":"2025-10-22T17:46:00+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=22735"},"wordCount":1024,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","exploit","hackerone","news","NONE","Security","tapic","Vulnerability"],"articleSection":["category_news"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=22735#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=22735","url":"https:\/\/zero.redgem.net\/?p=22735","name":"curl: Use of Deprecated strcpy() with Fixed-Size Buffers in Progress Time Formatting_H1:3395218 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2025-10-22T17:46:00+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=22735#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=22735"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=22735#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"curl: Use of Deprecated strcpy() with Fixed-Size Buffers in Progress Time Formatting_H1:3395218"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/22735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=22735"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/22735\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=22735"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=22735"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=22735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}