Projects
openEuler:Mainline
gdbm
_service:tar_scm:Fix-binary-dump-format-for-key...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:Fix-binary-dump-format-for-key-and-or-data-of-zero-s.patch of Package gdbm
From 94d0a6238e9573473d2cfdc74135305b2f6741f2 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff <gray@gnu.org> Date: Thu, 9 Jun 2022 22:44:26 +0300 Subject: [PATCH 05/14] Fix binary dump format for key and/or data of zero size. Fixes https://puszcza.gnu.org.ua/bugs/?565 * src/gdbmexp.c (gdbm_export_to_file): Check for positive size before attempting to write. * src/gdbmimp.c (gdbm_import_from_file): Check for positive size before attempting to read. --- src/gdbmexp.c | 4 ++-- src/gdbmimp.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gdbmexp.c b/src/gdbmexp.c index 6646bba..6f20fe6 100644 --- a/src/gdbmexp.c +++ b/src/gdbmexp.c @@ -65,13 +65,13 @@ gdbm_export_to_file (GDBM_FILE dbf, FILE *fp) size = htonl (key.dsize); if (fwrite (&size, sizeof (size), 1, fp) != 1) goto write_fail; - if (fwrite (key.dptr, key.dsize, 1, fp) != 1) + if (key.dsize > 0 && fwrite (key.dptr, key.dsize, 1, fp) != 1) goto write_fail; size = htonl (data.dsize); if (fwrite (&size, sizeof (size), 1, fp) != 1) goto write_fail; - if (fwrite (data.dptr, data.dsize, 1, fp) != 1) + if (data.dsize > 0 && fwrite (data.dptr, data.dsize, 1, fp) != 1) goto write_fail; } diff --git a/src/gdbmimp.c b/src/gdbmimp.c index be98ed7..73c0b74 100644 --- a/src/gdbmimp.c +++ b/src/gdbmimp.c @@ -113,7 +113,7 @@ gdbm_import_from_file (GDBM_FILE dbf, FILE *fp, int flag) key.dsize = (int) size; /* Read the data. */ - if (fread (&rsize, sizeof (rsize), 1, fp) != 1) + if (size > 0 && fread (&rsize, sizeof (rsize), 1, fp) != 1) { ec = GDBM_FILE_READ_ERROR; break; @@ -135,7 +135,7 @@ gdbm_import_from_file (GDBM_FILE dbf, FILE *fp, int flag) break; } } - if (fread (dbuffer, size, 1, fp) != 1) + if (size > 0 && fread (dbuffer, size, 1, fp) != 1) { ec = GDBM_FILE_READ_ERROR; break; -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2