starsofchance/CVEfixes_v1.0.8 huggingface dataset:
CVE-2014-125045 (published 2023-01-05T22:15Z)

A vulnerability has been found in meol1 and classified as critical. Affected by this vulnerability is the function GetAnimal of the file opdracht4/index.php. The manipulation of the argument where leads to sql injection. The identifier of the patch is 82441e413f87920d1e8f866e8ef9d7f353a7c583. It is recommended to apply a patch to fix this issue. The identifier VDB-217525 was assigned to this vulnerability.

CVSS v3 base score: 9.8, CRITICAL (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)

Weakness information:
cwe_id: CWE-89
cwe_name: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
description: The product constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component. Without sufficient removal or quoting of SQL syntax in user-controllable inputs, the generated SQL query can cause those inputs to be interpreted as SQL instead of ordinary user data.
extended_description: 
            
            
         
         

Fix information:
repo_url: https://github.com/Miesvanderlippe/meol1
commit_details: repo_url: https://github.com/Miesvanderlippe/meol1
author: Miesvanderlippe
author_date: 2014-11-24 21:56:42+01:00
msg: Opdracht 4 | Fixed SQL injection 3x

Disabled fake prepares
Bindparams for dynamic contents
HEXing of values

This still is injectable on my USBWebserver BTW :/
repository: repo_url: https://github.com/Miesvanderlippe/meol1
repo_name: Miesvanderlippe/meol1
repo_language: PHP
owner: Miesvanderlippe
file_changes: filename: index.php
change_type: ModificationType.MODIFY
diff: @@ -15,9 +15,9 @@ class DB extends PDO {
 		if(!isset($options)) {
 
 			$options = array(
-		    
-		    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
-		    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
+			    PDO::ATTR_EMULATE_PREPARES => false,
+			    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
+			    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
 			);
 		}
 
@@ -41,11 +41,15 @@ class DB extends PDO {
 
 		//Quickhand if decides wether to filter on name or id based on if the input is numeric. 
 		//Have an animal with a numeric name? Too bad. You could solve this if it weren't for a school excercise.
-		$whereCondition = 'WHERE ' . (is_numeric($where) ? 'id=\''.$where.'\'' : 'naam=\''.$where.'\'');
+		$whereCondition = 'WHERE ' . (is_numeric($where) ? 'id=UNHEX(:where)' : 'naam=UNHEX(:where)');
 
 		$query = $query . $whereCondition . ' LIMIT 1';
 
 		$reponse = parent::prepare($query);
+		$where = bin2hex($where);
+
+		$reponse->bindParam(':where', $where);
+
         $reponse->execute();
         $result	 = $reponse->fetchAll(PDO::FETCH_ASSOC);
 

programming_language: PHP
CVE-2017-6802 (published 2017-03-10T10:59Z)

An issue was discovered in ytnef before 1.9.2. There is a potential heap-based buffer over-read on incoming Compressed RTF Streams, related to DecompressRTF() in libytnef.

Severity: MEDIUM
CVSS v2 base score: 5.0 (AV:N/AC:L/Au:N/C:N/I:N/A:P)
CVSS v3 base score: 7.5, HIGH (CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)

Weakness information:
cwe_id: CWE-125
cwe_name: Out-of-bounds Read
description: The product reads data past the end, or before the beginning, of the intended buffer.
extended_description: 
            
            
             
			 
         
         

Fix information:
repo_url: https://github.com/Yeraze/ytnef
commit_details: repo_url: https://github.com/Yeraze/ytnef
author: Randall Hand
author_date: 2017-02-25 07:41:45-05:00
msg: Added safety check for Compressed RTF Streams

You could potentially overflow the input pointer.

in response to #34
repository: repo_url: https://github.com/Yeraze/ytnef
repo_name: Yeraze/ytnef
description: Yeraze's TNEF Stream Reader - for winmail.dat files
repo_language: Shell
owner: Yeraze
file_changes: filename: ChangeLog
change_type: ModificationType.MODIFY
diff: @@ -3,6 +3,7 @@ v1.9.2 - February 23, 2017
 Thanks to @hannob for finding some Out-of-bound exceptions in memory handline.
 * [SECURITY] An invalid memory access (heap overrun) in handling LONG datatypes
 * [SECURITY] Missing a check for fields of size 0
+* [SECURITY] Potential buffer overrun on incoming Compressed RTF Streams
 
 This version  & the previous 1.9.1 resolves the following CVEs:
 * CVE-2017-6306

programming_language: Markdown
filename: ytnef.c
change_type: ModificationType.MODIFY
diff: @@ -1541,7 +1541,7 @@ BYTE *DecompressRTF(variableLength *p, int *size) {
     ALLOCCHECK_CHAR(dst);
     memcpy(dst, comp_Prebuf.data, comp_Prebuf.size);
     out = comp_Prebuf.size;
-    while (out < (comp_Prebuf.size + uncompressedSize)) {
+    while ((out < (comp_Prebuf.size + uncompressedSize)) && (in < p->size)) {
       // each flag byte flags 8 literals/references, 1 per bit
       flags = (flagCount++ % 8 == 0) ? src[in++] : flags >> 1;
       if ((flags & 1) == 1) { // each flag bit is 1 for reference, 0 for literal

programming_language: C++
CVE-2019-20840 (published 2020-06-17T16:15Z)

An issue was discovered in LibVNCServer before 0.9.13. libvncserver/ws_decode.c can lead to a crash because of unaligned accesses in hybiReadAndDecode.

Severity: MEDIUM
CVSS v2 base score: 5.0 (AV:N/AC:L/Au:N/C:N/I:N/A:P)
CVSS v3 base score: 7.5, HIGH (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)

Weakness information:
cwe_id: CWE-787
cwe_name: Out-of-bounds Write
description: The product writes data past the end, or before the beginning, of the intended buffer.
extended_description: 
            
            
             
			 
         
         

Fix information:
repo_url: https://github.com/LibVNC/libvncserver
commit_details: repo_url: https://github.com/LibVNC/libvncserver
author: Rolf Eike Beer
author_date: 2019-05-28 18:30:46+02:00
msg: fix crash because of unaligned accesses in hybiReadAndDecode()
repository: repo_url: https://github.com/LibVNC/libvncserver
repo_name: LibVNC/libvncserver
description: LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program.
repo_language: C
owner: LibVNC
file_changes: filename: ws_decode.c
change_type: ModificationType.MODIFY
diff: @@ -327,7 +327,6 @@ hybiReadAndDecode(ws_ctx_t *wsctx, char *dst, int len, int *sockRet, int nInBuf)
   int bufsize;
   int nextRead;
   unsigned char *data;
-  uint32_t *data32;
 
   /* if data was carried over, copy to start of buffer */
   memcpy(wsctx->writePos, wsctx->carryBuf, wsctx->carrylen);
@@ -383,10 +382,12 @@ hybiReadAndDecode(ws_ctx_t *wsctx, char *dst, int len, int *sockRet, int nInBuf)
   /* for a possible base64 decoding, we decode multiples of 4 bytes until
    * the whole frame is received and carry over any remaining bytes in the carry buf*/
   data = (unsigned char *)(wsctx->writePos - toDecode);
-  data32= (uint32_t *)data;
 
   for (i = 0; i < (toDecode >> 2); i++) {
-    data32[i] ^= wsctx->header.mask.u;
+    uint32_t tmp;
+    memcpy(&tmp, data + i * sizeof(tmp), sizeof(tmp));
+    tmp ^= wsctx->header.mask.u;
+    memcpy(data + i * sizeof(tmp), &tmp, sizeof(tmp));
   }
   ws_dbg("mask decoding; i=%d toDecode=%d\n", i, toDecode);
 

programming_language: C
CVE-2020-8904 (published 2020-08-12T19:15Z)

An arbitrary memory overwrite vulnerability in the trusted memory of Asylo exists in versions prior to 0.6.0. As the ecall_restore function fails to validate the range of the output_len pointer, an attacker can manipulate the tmp_output_len value and write to an arbitrary location in the trusted (enclave) memory. We recommend updating Asylo to version 0.6.0 or later.

Severity: MEDIUM
CVSS v2 base score: 5.5 (AV:N/AC:L/Au:S/C:N/I:P/A:P)
CVSS v3 base score: 9.6, CRITICAL (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:H)

Weakness information:
cwe_id: CWE-119
cwe_name: Improper Restriction of Operations within the Bounds of a Memory Buffer
description: The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.
extended_description: 
            Certain languages allow direct addressing of memory locations and do not automatically ensure that these locations are valid for the memory buffer that is being referenced. This can cause read or write operations to be performed on memory locations that may be associated with other variables, data structures, or internal program data.
         
         

Fix information:
repo_url: https://github.com/google/asylo
commit_details: repo_url: https://github.com/google/asylo
author: Chong Cai
author_date: 2020-07-21 17:22:14-07:00
msg: Check for output_len range in ecall_restore

This may cause vulnerablity if pointing to trusted memory.

This issue was reported by Qinkun Bao, Zhaofeng Chen, Mingshen Sun, and
Kang Li from Baidu Security.

PiperOrigin-RevId: 322476223
Change-Id: I8a6406e9f07a20582d4387bd9a3469dfa9cbcb12
repository: repo_url: https://github.com/google/asylo
repo_name: google/asylo
description: An open and flexible framework for developing enclave applications
repo_language: C++
owner: google
file_changes: filename: ecalls.cc
change_type: ModificationType.MODIFY
diff: @@ -62,9 +62,11 @@ int ecall_take_snapshot(char **output, uint64_t *output_len) {
 int ecall_restore(const char *input, uint64_t input_len, char **output,
                   uint64_t *output_len) {
   if (!asylo::primitives::TrustedPrimitives::IsOutsideEnclave(input,
-                                                              input_len)) {
+                                                              input_len) ||
+      !asylo::primitives::TrustedPrimitives::IsOutsideEnclave(
+          output_len, sizeof(uint64_t))) {
     asylo::primitives::TrustedPrimitives::BestEffortAbort(
-        "ecall_restore: input found to not be in untrusted memory.");
+        "ecall_restore: input/output found to not be in untrusted memory.");
   }
   int result = 0;
   size_t tmp_output_len;

programming_language: C++
CVE-2023-27599 (published 2023-03-15T21:15Z)

OpenSIPS is a Session Initiation Protocol (SIP) server implementation. Prior to versions 3.1.7 and 3.2.4, when the function `append_hf` handles a SIP message with a malformed To header, a call to the function `abort()` is performed, resulting in a crash. This is due to the following check in `data_lump.c:399` in the function `anchor_lump`. An attacker abusing this vulnerability will crash OpenSIPS leading to Denial of Service. It affects configurations containing functions that make use of the affected code, such as the function `append_hf`. This issue has been fixed in versions 3.1.7 and 3.2.4.

CVSS v3 base score: 7.5, HIGH (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)

Weakness information:
cwe_id: NVD-CWE-noinfo
cwe_name: Insufficient Information
description: There is insufficient information about the issue to classify it; details are unkown or unspecified.
extended_description: Insufficient Information

Fix information:
repo_url: https://github.com/OpenSIPS/opensips
commit_details: repo_url: https://github.com/OpenSIPS/opensips
author: Bogdan-Andrei Iancu
author_date: 2021-11-12 14:14:23+02:00
msg: [sipmsgops] fix parse_to_param() parsing

Issue discovered during OpenSIPS Security Audit 2021,
	by Alfred Farrugia & Sandro Gauci (Enable Security)

https://github.com/OpenSIPS/opensips/security/advisories/GHSA-qvj2-vqrg-f5jx
repository: repo_url: https://github.com/OpenSIPS/opensips
repo_name: OpenSIPS/opensips
description: OpenSIPS is a GPL implementation of a multi-functionality SIP Server that targets to deliver a high-level technical solution (performance, security and quality) to be used in professional SIP server platforms.
repo_language: C
owner: OpenSIPS
file_changes: filename: parse_to.c
change_type: ModificationType.MODIFY
diff: @@ -232,6 +232,8 @@ static inline char* parse_to_param(char *buffer, char *end,
 				switch (status)
 				{
 					case PARA_VALUE_QUOTED:
+						if (tmp+1==end)
+							goto parse_error;
 						switch (*(tmp+1))
 						{
 							case '\r':
@@ -453,8 +455,13 @@ static inline char* parse_to_param(char *buffer, char *end,
 		}/*switch*/
 	}/*for*/
 
+	if (status==PARA_VALUE_QUOTED) {
+			LM_ERR("unexpected end of header in state %d\n", status);
+			goto parse_error;
+	}
 
 endofheader:
+	LM_DBG("end of header reached, state=%d\n", status);
 	if (param) {
 		if (saved_status==S_EQUAL||saved_status==S_PARA_VALUE) {
 			saved_status = E_PARA_VALUE;

programming_language: C
CVE-2016-15005 (published 2022-12-27T22:15Z)

CSRF tokens are generated using math/rand, which is not a cryptographically secure random number generator, allowing an attacker to predict values and bypass CSRF protections with relatively few requests.

CVSS v3 base score: 8.8, HIGH (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H)

Weakness information:
cwe_id: CWE-352
cwe_name: Cross-Site Request Forgery (CSRF)
description: The web application does not, or can not, sufficiently verify whether a well-formed, valid, consistent request was intentionally provided by the user who submitted the request.
extended_description: When a web server is designed to receive a request from a client without any mechanism for verifying that it was intentionally sent, then it might be possible for an attacker to trick a client into making an unintentional request to the web server which will be treated as an authentic request. This can be done via a URL, image load, XMLHttpRequest, etc. and can result in exposure of data or unintended code execution.
         

Fix information:
repo_url: https://github.com/dinever/golf
commit_details: repo_url: https://github.com/dinever/golf
author: Shawn Ding
author_date: 2016-06-10 22:17:45-04:00
msg: Merge pull request #24 from bentranter/use-crypto-rand-for-xsrf

Use crypto/rand for XSRF token generation
repository: repo_url: https://github.com/dinever/golf
repo_name: dinever/golf
description: :golf: The Golf web framework
repo_language: Go
owner: dinever
CVE-2023-51450 (published 2024-02-22T15:15Z)

baserCMS is a website development framework. Prior to version 5.0.9, there is an OS Command Injection vulnerability in the site search feature of baserCMS. Version 5.0.9 contains a fix for this vulnerability.


Weakness information:
cwe_id: NVD-CWE-noinfo
cwe_name: Insufficient Information
description: There is insufficient information about the issue to classify it; details are unkown or unspecified.
extended_description: Insufficient Information

Fix information:
repo_url: https://github.com/baserproject/basercms
commit_details: repo_url: https://github.com/baserproject/basercms
author: sakaguchi
author_date: 2024-02-22 15:20:00+09:00
msg: Merge pull request from GHSA-jjxq-m8h3-4vw5
repository: repo_url: https://github.com/baserproject/basercms
repo_name: baserproject/basercms
description: baserCMS :  Based Website Development Project
repo_language: PHP
owner: baserproject
file_changes: filename: BcAdminFormHelper.php
change_type: ModificationType.MODIFY
diff: @@ -63,7 +63,7 @@ class BcAdminFormHelper extends BcFormHelper
                         'deleteLabel' => ['class' => 'bca-file__delete-label'],
                         'figure' => ['class' => 'bca-file__figure'],
                         'img' => ['class' => 'bca-file__img'],
-                        'figcaption' => ['class' => 'bca-file__figcaption']
+                        'figcaption' => ['class' => 'bca-file__figcaption', 'escape' => true]
                     ], $options);
                     break;
                 case 'dateTimePicker':

programming_language: PHP
CVE-2021-32787 (published 2021-08-02T22:15Z)

Sourcegraph is a code search and navigation engine. Sourcegraph before version 3.30.0 has two potential information leaks. The site-admin area can be accessed by regular users and all information and features are properly protected except for daily usage statistics and code intelligence uploads and indexes. It is not possible to alter the information, nor interact with any other features in the site-admin area. The issue is patched in version 3.30.0, where the information cannot be accessed by unprivileged users. There are no workarounds aside from upgrading.

Severity: MEDIUM
CVSS v2 base score: 4.0 (AV:N/AC:L/Au:S/C:P/I:N/A:N)
CVSS v3 base score: 4.3, MEDIUM (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N)

Weakness information:
cwe_id: NVD-CWE-noinfo
cwe_name: Insufficient Information
description: There is insufficient information about the issue to classify it; details are unkown or unspecified.
extended_description: Insufficient Information

Fix information:
repo_url: https://github.com/sourcegraph/sourcegraph
commit_details: repo_url: https://github.com/sourcegraph/sourcegraph
author: ᴜɴᴋɴᴡᴏɴ
author_date: 2021-07-20 21:42:52+08:00
msg: security: check site admin before returning site usage stats (#23026)
repository: repo_url: https://github.com/sourcegraph/sourcegraph
repo_name: sourcegraph/sourcegraph
description: Code AI platform with Code Search & Cody
repo_language: Go
owner: sourcegraph
file_changes: filename: site_usage_stats.go
change_type: ModificationType.MODIFY
diff: @@ -4,6 +4,7 @@ import (
 	"context"
 	"time"
 
+	"github.com/sourcegraph/sourcegraph/cmd/frontend/backend"
 	"github.com/sourcegraph/sourcegraph/cmd/frontend/internal/usagestatsdeprecated"
 	"github.com/sourcegraph/sourcegraph/internal/types"
 )
@@ -13,6 +14,10 @@ func (r *siteResolver) UsageStatistics(ctx context.Context, args *struct {
 	Weeks  *int32
 	Months *int32
 }) (*siteUsageStatisticsResolver, error) {
+	if err := backend.CheckCurrentUserIsSiteAdmin(ctx, r.db); err != nil {
+		return nil, err
+	}
+
 	opt := &usagestatsdeprecated.SiteUsageStatisticsOptions{}
 	if args.Days != nil {
 		d := int(*args.Days)

programming_language: Go
CVE-2015-7541 (published 2016-01-08T21:59Z)

The initialize method in the Histogram class in lib/colorscore/histogram.rb in the colorscore gem before 0.0.5 for Ruby allows context-dependent attackers to execute arbitrary code via shell metacharacters in the (1) image_path, (2) colors, or (3) depth variable.

Severity: HIGH
CVSS v2 base score: 10.0 (AV:N/AC:L/Au:N/C:C/I:C/A:C)
CVSS v3 base score: 10.0, CRITICAL (CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H)

Weakness information:
cwe_id: CWE-77
cwe_name: Improper Neutralization of Special Elements used in a Command ('Command Injection')
description: The product constructs all or part of a command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended command when it is sent to a downstream component.
extended_description: 
            Many protocols and products have their own custom command language. While OS or shell command strings are frequently discovered and targeted, developers may not realize that these other command languages might also be vulnerable to attacks.
         
         

Fix information:
repo_url: https://github.com/quadule/colorscore
commit_details: repo_url: https://github.com/quadule/colorscore
author: Florian Frank
author_date: 2016-01-05 11:53:22+01:00
msg: Fix CVE-2015-7541

Avoid passsing possible user input directly into the shell. Instead
quote the `image_path` value before calling the `convert` command.

See here http://rubysec.com/advisories/CVE-2015-7541/ for more
information.
repository: repo_url: https://github.com/quadule/colorscore
repo_name: quadule/colorscore
description: Finds the dominant colors in an image and scores them against a user-defined palette, using the CIE2000 Delta E formula.
repo_language: Ruby
owner: quadule
file_changes: filename: histogram.rb
change_type: ModificationType.MODIFY
diff: @@ -1,7 +1,9 @@
+require "shellwords"
+
 module Colorscore
   class Histogram
     def initialize(image_path, colors=16, depth=8)
-      output = `convert #{image_path} -resize 400x400 -format %c -dither None -quantize YIQ -colors #{colors} -depth #{depth} histogram:info:-`
+      output = `convert #{image_path.shellescape} -resize 400x400 -format %c -dither None -quantize YIQ -colors #{colors.to_i} -depth #{depth.to_i} histogram:info:-`
       @lines = output.lines.sort.reverse.map(&:strip).reject(&:empty?)
     end
 

programming_language: Ruby
CVE-2023-34795 (published 2023-06-16T16:15Z)

xlsxio v0.1.2 to v0.2.34 was discovered to contain a free of uninitialized pointer in the xlsxioread_sheetlist_close() function. This vulnerability allows attackers to cause a Denial of Service (DoS) via a crafted XLSX file.

CVSS v3 base score: 7.8, HIGH (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H)

Weakness information:
cwe_id: CWE-416
cwe_name: Use After Free
description: The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.
extended_description: 
             
             
             
			 
             
             
         
         

Fix information:
repo_url: https://github.com/brechtsanders/xlsxio
commit_details: repo_url: https://github.com/brechtsanders/xlsxio
author: Brecht Sanders
author_date: 2023-05-30 17:48:32+02:00
repository: repo_url: https://github.com/brechtsanders/xlsxio
repo_name: brechtsanders/xlsxio
description: XLSX I/O - C library for reading and writing .xlsx files
repo_language: C
owner: brechtsanders
file_changes: filename: Changelog.txt
change_type: ModificationType.MODIFY
diff: @@ -1,8 +1,14 @@
+0.2.35
+
+2023-05-30  Brecht Sanders  https://github.com/brechtsanders/
+
+  * fix free of uninitialized pointer in xlsxioread_sheetlist_close() (#121)
+
 0.2.34
 
 2022-11-02  Brecht Sanders  https://github.com/brechtsanders/
 
-  * PR from captaingroove tp add minizip-ng support (#115)
+  * PR from captaingroove to add minizip-ng support (#115)
 
 0.2.33
 

programming_language: Batchfile
filename: xlsxio_version.h
change_type: ModificationType.MODIFY
diff: @@ -49,7 +49,7 @@ THE SOFTWARE.
 /*! \brief minor version number */
 #define XLSXIO_VERSION_MINOR 2
 /*! \brief micro version number */
-#define XLSXIO_VERSION_MICRO 34
+#define XLSXIO_VERSION_MICRO 35
 /*! @} */
 
 /*! \cond PRIVATE */

programming_language: C
filename: xlsxio_read.c
change_type: ModificationType.MODIFY
diff: @@ -1410,6 +1410,7 @@ DLL_EXPORT_XLSXIO xlsxioreadersheetlist xlsxioread_sheetlist_open (xlsxioreader
   result->sheetcallbackdata.xmlparser = NULL;
   result->sheetcallbackdata.callback = xlsxioread_list_sheets_resumable_callback;
   result->sheetcallbackdata.callbackdata = result;
+  result->xmlparser = NULL;
   result->nextsheetname = NULL;
   if ((result->zipfile = XML_Char_openzip(handle->zip, mainsheetfile, 0)) != NULL) {
     result->xmlparser = expat_process_zip_file_suspendable(result->zipfile, main_sheet_list_expat_callback_element_start, NULL, NULL, &result->sheetcallbackdata);

programming_language: C