On Thu, Aug 09, 2012 at 09:15:49PM -0400, canyonknight wrote: > Packages can currently be submitted with variables longer than the maximum > allowed by the DB for that specific field. The string will be shortened > without informing the user. This can result in unexpected oddities on > submitted packages. Print error messages informing the user when the package > name, URL, description, license, or version is too long. > > Also move the resolution of full package version (including epoch) to an > earlier point in pkgsubmit.php > > Signed-off-by: canyonknight <canyonkni...@gmail.com> > --- > web/html/pkgsubmit.php | 35 +++++++++++++++++++++++++++++------ > 1 file changed, 29 insertions(+), 6 deletions(-) > > diff --git a/web/html/pkgsubmit.php b/web/html/pkgsubmit.php > index e87279e..5783da4 100644 > --- a/web/html/pkgsubmit.php > +++ b/web/html/pkgsubmit.php > @@ -277,6 +277,35 @@ if ($uid): > } > } > > + # Determine the full package version with epoch > + if (!$error) { > + if (isset($new_pkgbuild['epoch']) && > (int)$new_pkgbuild['epoch'] > 0) { > + $pkg_version = sprintf('%d:%s-%s', > $new_pkgbuild['epoch'], $new_pkgbuild['pkgver'], $new_pkgbuild['pkgrel']); > + } else { > + $pkg_version = sprintf('%s-%s', > $new_pkgbuild['pkgver'], $new_pkgbuild['pkgrel']); > + } > + } > + > + # The DB schema imposes limitations on number of allowed > characters > + # Print error message when these limitations are exceeded > + if (!$error) { > + if (strlen($pkg_name) > 64) { > + $error = __("Error - Package name cannot be > greater than %s characters", 64); > + } > + if (strlen($new_pkgbuild['url']) > 255) { > + $error = __("Error - Package URL cannot be > greater than %s characters", 255); > + } > + if (strlen($new_pkgbuild['pkgdesc']) > 255) { > + $error = __("Error - Package description cannot > be greater than %s characters", 255); > + } > + if (strlen($new_pkgbuild['license']) > 40) { > + $error = __("Error - Package license cannot be > greater than %s characters", 40); > + } > + if (strlen($pkg_version) > 32) { > + $error = __("Error - Package version cannot be > greater than %s characters", 32); > + }
Only one minor complaint: We should probably use "%d" here. The other patches look fine to me -- thanks! > + } > + > if (isset($pkg_name)) { > $incoming_pkgdir = INCOMING_DIR . substr($pkg_name, 0, > 2) . "/" . $pkg_name; > } > @@ -324,12 +353,6 @@ if ($uid): > > $pdata = > pkgdetails_by_pkgname($new_pkgbuild['pkgname'], $dbh); > > - if (isset($new_pkgbuild['epoch']) && > (int)$new_pkgbuild['epoch'] > 0) { > - $pkg_version = sprintf('%d:%s-%s', > $new_pkgbuild['epoch'], $new_pkgbuild['pkgver'], $new_pkgbuild['pkgrel']); > - } else { > - $pkg_version = sprintf('%s-%s', > $new_pkgbuild['pkgver'], $new_pkgbuild['pkgrel']); > - } > - > # Check the category to use, "1" meaning "none" (or > "keep category" for > # existing packages). > if (isset($_POST['category'])) { > -- > 1.7.11.4