forked from pool/libxls
Jan Engelhardt
02dba8bce2
OBS-URL: https://build.opensuse.org/package/show/server:mail/libxls?expand=0&rev=13
58 lines
1.7 KiB
Diff
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;
|