aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <thierry.vignaud@gmail.com>2021-12-03 15:07:52 +0100
committerThierry Vignaud <thierry.vignaud@gmail.com>2021-12-03 15:11:26 +0100
commit0acb19ffb2cf8a2dcef3beb44f1c4af670d2219d (patch)
tree012623054079edba57b292f6d2f8a0a2d417a104
parentf0e647904524953a92871d2ac5ed88f87fb65ecb (diff)
downloadperl-URPM-0acb19ffb2cf8a2dcef3beb44f1c4af670d2219d.tar
perl-URPM-0acb19ffb2cf8a2dcef3beb44f1c4af670d2219d.tar.gz
perl-URPM-0acb19ffb2cf8a2dcef3beb44f1c4af670d2219d.tar.bz2
perl-URPM-0acb19ffb2cf8a2dcef3beb44f1c4af670d2219d.tar.xz
perl-URPM-0acb19ffb2cf8a2dcef3beb44f1c4af670d2219d.zip
Harmonize buffer size
Thus fixing "invalid line <@provides for huge pkgs"... The fix in 5.221 was fixing emiting provides in synthesis for pkgs with lot of provides, but neither URPM or urpmi testsuite uses such a pkg and didn't catch that having those provides in synthesis would break reading synthesis. See commit 950d56e991d307b9b60bde8f51920bee3d1bc61c
-rw-r--r--Changes2
-rw-r--r--URPM.xs8
2 files changed, 7 insertions, 3 deletions
diff --git a/Changes b/Changes
index 870d041..3dfdcd2 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,5 @@
+- Harmonize buffer size (thus fixing "invalid line <@provides" for huge pkgs)
+
Version 5.221 - 2 December 2021
- Bump static buffer size when generating synthesys
diff --git a/URPM.xs b/URPM.xs
index 543388d..7d48acf 100644
--- a/URPM.xs
+++ b/URPM.xs
@@ -141,6 +141,8 @@ typedef struct s_Package* URPM__Package;
#define WEAK_DEPS_ARE_SUPPORTED
#endif
+#define BUF_SIZE 65536*3
+
static ssize_t write_nocheck(int fd, const void *buf, size_t count) {
return write(fd, buf, count);
}
@@ -754,7 +756,7 @@ return_problems(rpmps ps, int translate_message, int raw_message) {
static char *
pack_list(const Header header, rpmTag tag_name, rpmTag tag_flags, rpmTag tag_version) {
- char buff[65536*2];
+ char buff[BUF_SIZE];
char *p = buff;
struct rpmtd_s td;
@@ -2177,7 +2179,7 @@ Pkg_build_info(pkg, fileno, provides_files=NULL, recommends=0)
int recommends
CODE:
if (pkg->info) {
- char buff[65536*3];
+ char buff[BUF_SIZE];
UV size;
/* info line should be the last to be written */
@@ -2937,7 +2939,7 @@ Urpm_parse_synthesis__XS(urpm, filename, ...)
HV *obsoletes = fobsoletes && SvROK(*fobsoletes) && SvTYPE(SvRV(*fobsoletes)) == SVt_PVHV ? (HV*)SvRV(*fobsoletes) : NULL;
if (depslist != NULL) {
- char buff[65536*2];
+ char buff[BUF_SIZE];
char *p, *eol;
int buff_len;
struct s_Package pkg;