_hplip/hplip-strncpy.patch
2025-04-11 12:04:43 +02:00

55 lines
3.3 KiB
Diff

diff -up hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp
--- hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp.strncpy 2025-04-11 10:16:00.438702562 +0200
+++ hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp 2025-04-11 10:21:25.088096376 +0200
@@ -211,6 +211,7 @@ HPCupsFilter::HPCupsFilter() : m_pPrinte
adj_k_width = 0;
black_raster = NULL;
color_raster = NULL;
+ memset (&m_JA, 0, sizeof (m_JA));
}
HPCupsFilter::~HPCupsFilter()
@@ -428,15 +429,15 @@ DRIVER_ERROR HPCupsFilter::startPage (cu
m_JA.media_attributes.physical_height = cups_header->PageSize[1];
m_JA.media_attributes.printable_width = ((cups_header->ImagingBoundingBox[2]-cups_header->ImagingBoundingBox[0]) * horz_res) / 72;
m_JA.media_attributes.printable_height = ((cups_header->ImagingBoundingBox[3]-cups_header->ImagingBoundingBox[1]) * vert_res) / 72;
- strncpy(m_JA.media_attributes.PageSizeName, &cups_header->cupsString[0][0], sizeof(m_JA.media_attributes.PageSizeName));
- strncpy(m_JA.media_attributes.MediaTypeName, cups_header->MediaType, sizeof(m_JA.media_attributes.MediaTypeName));
- strncpy(m_JA.quality_attributes.hbpl1_print_quality, cups_header->OutputType, sizeof(m_JA.quality_attributes.hbpl1_print_quality));
+ strncpy(m_JA.media_attributes.PageSizeName, &cups_header->cupsString[0][0], sizeof(m_JA.media_attributes.PageSizeName)-1);
+ strncpy(m_JA.media_attributes.MediaTypeName, cups_header->MediaType, sizeof(m_JA.media_attributes.MediaTypeName)-1);
+ strncpy(m_JA.quality_attributes.hbpl1_print_quality, cups_header->OutputType, sizeof(m_JA.quality_attributes.hbpl1_print_quality)-1);
m_JA.color_mode = cups_header->cupsRowStep;
if (m_JA.media_attributes.PageSizeName[0] == '\0') {
// Copy the value of cups_header->cupsPageSizeName if it isnot null
if (cups_header->cupsPageSizeName != nullptr) {
- strncpy(m_JA.media_attributes.PageSizeName, cups_header->cupsPageSizeName, sizeof(m_JA.media_attributes.PageSizeName));
+ strncpy(m_JA.media_attributes.PageSizeName, cups_header->cupsPageSizeName, sizeof(m_JA.media_attributes.PageSizeName) - 1);
}
}
}
diff -up hplip-3.25.2/prnt/hpijs/hpijs.cpp.strncpy hplip-3.25.2/prnt/hpijs/hpijs.cpp
--- hplip-3.25.2/prnt/hpijs/hpijs.cpp.strncpy 2025-04-11 10:16:00.434453252 +0200
+++ hplip-3.25.2/prnt/hpijs/hpijs.cpp 2025-04-11 10:16:00.501228045 +0200
@@ -605,7 +605,7 @@ int main (int argc, char *argv[], char *
}
if (argc > 2)
- strncpy(user_name, argv[2], sizeof(user_name));
+ strncpy(user_name, argv[2], sizeof(user_name) - 1);
#ifdef HAVE_LIBHPIP
char *pDev;
diff -up hplip-3.25.2/prnt/hpijs/hpijsfax.cpp.strncpy hplip-3.25.2/prnt/hpijs/hpijsfax.cpp
--- hplip-3.25.2/prnt/hpijs/hpijsfax.cpp.strncpy 2025-02-27 13:12:29.000000000 +0100
+++ hplip-3.25.2/prnt/hpijs/hpijsfax.cpp 2025-04-11 10:16:00.501403513 +0200
@@ -282,7 +282,7 @@ int hpijsFaxServer (int argc, char **arg
char user_name[32]={0,};
if (argc > 2)
- strncpy(user_name, argv[2], sizeof(user_name));
+ strncpy(user_name, argv[2], sizeof(user_name) - 1);
snprintf(hpFileName,sizeof(hpFileName),"%s/hp_%s_ijsfax_Log_XXXXXX",CUPS_TMP_DIR, user_name);