all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH storage] diskmanage: get_partnum: fix check
@ 2021-04-20 12:07 Fabian Ebner
  2021-04-20 16:13 ` [pve-devel] applied: " Thomas Lamprecht
  0 siblings, 1 reply; 2+ messages in thread
From: Fabian Ebner @ 2021-04-20 12:07 UTC (permalink / raw)
  To: pve-devel

Not replacing it with return, because the current behavior is dying:
    Can't "next" outside a loop block
and the single existing caller in pve-manager's API2/Ceph/OSD.pm does not check
the return value.

Also check for $st, which can be undefined in case a non-existing path was
provided. This also led to dying previously:
    Can't call method "mode" on an undefined value

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
 PVE/Diskmanage.pm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/PVE/Diskmanage.pm b/PVE/Diskmanage.pm
index 853d333..b916d2e 100644
--- a/PVE/Diskmanage.pm
+++ b/PVE/Diskmanage.pm
@@ -750,7 +750,9 @@ sub get_partnum {
 
     my $st = stat($part_path);
 
-    next if !$st->mode || !S_ISBLK($st->mode) || !$st->rdev;
+    die "error detecting block device '$part_path'\n"
+	if !$st || !$st->mode || !S_ISBLK($st->mode) || !$st->rdev;
+
     my $major = PVE::Tools::dev_t_major($st->rdev);
     my $minor = PVE::Tools::dev_t_minor($st->rdev);
     my $partnum_path = "/sys/dev/block/$major:$minor/";
-- 
2.20.1





^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pve-devel] applied: [PATCH storage] diskmanage: get_partnum: fix check
  2021-04-20 12:07 [pve-devel] [PATCH storage] diskmanage: get_partnum: fix check Fabian Ebner
@ 2021-04-20 16:13 ` Thomas Lamprecht
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2021-04-20 16:13 UTC (permalink / raw)
  To: Proxmox VE development discussion, Fabian Ebner

On 20.04.21 14:07, Fabian Ebner wrote:
> Not replacing it with return, because the current behavior is dying:
>     Can't "next" outside a loop block
> and the single existing caller in pve-manager's API2/Ceph/OSD.pm does not check
> the return value.
> 
> Also check for $st, which can be undefined in case a non-existing path was
> provided. This also led to dying previously:
>     Can't call method "mode" on an undefined value
> 
> Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
> ---
>  PVE/Diskmanage.pm | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
>

applied, thanks!




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-04-20 16:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-20 12:07 [pve-devel] [PATCH storage] diskmanage: get_partnum: fix check Fabian Ebner
2021-04-20 16:13 ` [pve-devel] applied: " Thomas Lamprecht

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal