X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Findirect.git;a=blobdiff_plain;f=indirect.xs;h=f8312ac889a9fe5982ee33dcc28d35d0bbe7fd02;hp=c6e18e7204dbde48f30b5bdafebe646e988ad044;hb=c8c4f6a0ef3e302ef052516259c03de71e2a26b1;hpb=5ad2eeb198dc46b5e4497d3dbb84490d2e5affee diff --git a/indirect.xs b/indirect.xs index c6e18e7..f8312ac 100644 --- a/indirect.xs +++ b/indirect.xs @@ -183,15 +183,15 @@ STATIC OP *indirect_ck_rv2sv(pTHX_ OP *o) { const char *stash = HvNAME_get(PL_curstash); STRLEN stashlen = HvNAMELEN_get(PL_curstash); - if ((len < stashlen + 2) || strnNE(name, stash, stashlen)) { + if ((len < stashlen + 2) || strnNE(name, stash, stashlen) + || name[stashlen] != ':' || name[stashlen+1] != ':') { /* Failed again ? Try to remove main */ stash = "main"; stashlen = 4; - if ((len < stashlen + 2) || strnNE(name, stash, stashlen)) + if ((len < stashlen + 2) || strnNE(name, stash, stashlen) + || name[stashlen] != ':' || name[stashlen+1] != ':') goto done; } - if (name[stashlen] != ':' || name[stashlen+1] != ':') - goto done; sv_setpvn(sv, "$", 1); stashlen += 2;