strncpy is trouble
This commit is contained in:
parent
44262405df
commit
7b86e28e00
16
os/files.c
16
os/files.c
@ -76,14 +76,14 @@ loop:
|
|||||||
return Yap_unify(ARG1, ARG3) && Yap_unify(ARG2, MkStringTerm(""));
|
return Yap_unify(ARG1, ARG3) && Yap_unify(ARG2, MkStringTerm(""));
|
||||||
}
|
}
|
||||||
tmp = malloc((ss - f) + 1);
|
tmp = malloc((ss - f) + 1);
|
||||||
strncpy(tmp, f, (ss)-f);
|
int i;
|
||||||
|
for (i=0;i < (ss - f); i++) tmp[i] = ss[i];
|
||||||
|
tmp[i] = '\0';
|
||||||
if (!Yap_unify(ARG1, MkStringTerm(tmp))) {
|
if (!Yap_unify(ARG1, MkStringTerm(tmp))) {
|
||||||
if (tmp != f)
|
free(tmp);
|
||||||
free(tmp);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (tmp != f)
|
free(tmp);
|
||||||
free(tmp);
|
|
||||||
// without and with dot
|
// without and with dot
|
||||||
if (!Yap_unify(ARG2, MkStringTerm(ss + 1)))
|
if (!Yap_unify(ARG2, MkStringTerm(ss + 1)))
|
||||||
return Yap_unify(ARG2, MkStringTerm(ss));
|
return Yap_unify(ARG2, MkStringTerm(ss));
|
||||||
@ -95,8 +95,10 @@ loop:
|
|||||||
Yap_unify(ARG2, MkAtomTerm(Yap_LookupAtom("")));
|
Yap_unify(ARG2, MkAtomTerm(Yap_LookupAtom("")));
|
||||||
}
|
}
|
||||||
tmp = malloc((ss - f) + 1);
|
tmp = malloc((ss - f) + 1);
|
||||||
strncpy(tmp, f, (ss)-f);
|
int i;
|
||||||
if (!Yap_unify(ARG1, MkAtomTerm(Yap_LookupAtom(tmp)))) {
|
for (i=0;i < (ss - f); i++) tmp[i] = ss[i];
|
||||||
|
tmp[i] = '\0';
|
||||||
|
if (!Yap_unify(ARG1, MkAtomTerm(Yap_LookupAtom(tmp)))) {
|
||||||
if (tmp != f)
|
if (tmp != f)
|
||||||
free(tmp);
|
free(tmp);
|
||||||
return false;
|
return false;
|
||||||
|
Reference in New Issue
Block a user