SHA256
6
0
forked from pool/libxls
libxls/0001-Fixes-94-possible-null-ptr-deref.patch

58 lines
1.7 KiB
Diff

From 866fedeae65ba9ff12b6cf4449dee2096bb2da51 Mon Sep 17 00:00:00 2001
From: stephematician <stephematician@gmail.com>
Date: Wed, 2 Mar 2022 15:01:51 +1100
Subject: [PATCH] Fixes #94 possible null ptr deref
Changes due to lockedbyte and PR 97 conversation
---
include/xls.h | 4 +++-
src/xls.c | 6 ++++++
2 files changed, 9 insertions(+), 1 deletion(-)
Index: libxls-1.6.2/include/xls.h
===================================================================
--- libxls-1.6.2.orig/include/xls.h
+++ libxls-1.6.2/include/xls.h
@@ -49,7 +49,9 @@ typedef enum {
LIBXLS_ERROR_SEEK,
LIBXLS_ERROR_READ,
LIBXLS_ERROR_PARSE,
- LIBXLS_ERROR_MALLOC
+ LIBXLS_ERROR_MALLOC,
+ LIBXLS_ERROR_UNSUPPORTED_ENCRYPTION,
+ LIBXLS_ERROR_NULL_ARGUMENT
} xls_error_t;
const char* xls_getVersion(void);
Index: libxls-1.6.2/src/xls.c
===================================================================
--- libxls-1.6.2.orig/src/xls.c
+++ libxls-1.6.2/src/xls.c
@@ -830,6 +830,8 @@ int xls_isRecordTooSmall(xlsWorkBook *pW
xls_error_t xls_parseWorkBook(xlsWorkBook* pWB)
{
+ if(!pWB) return LIBXLS_ERROR_NULL_ARGUMENT;
+
BOF bof1 = { .id = 0, .size = 0 };
BOF bof2 = { .id = 0, .size = 0 };
BYTE* buf = NULL;
@@ -1072,6 +1074,8 @@ cleanup:
static xls_error_t xls_preparseWorkSheet(xlsWorkSheet* pWS)
{
+ if(!pWS) return LIBXLS_ERROR_NULL_ARGUMENT;
+
BOF tmp;
BYTE* buf = NULL;
xls_error_t retval = LIBXLS_OK;
@@ -1221,6 +1225,8 @@ static xls_error_t xls_formatColumn(xlsW
xls_error_t xls_parseWorkSheet(xlsWorkSheet* pWS)
{
+ if(!pWS) return LIBXLS_ERROR_NULL_ARGUMENT;
+
BOF tmp;
BYTE* buf = NULL;
long offset = pWS->filepos;