File 0001-Fixes-94-possible-null-ptr-deref.patch of Package libxls

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;
openSUSE Build Service is sponsored by