projects
/
yaz-moved-to-github.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
23cfa43
)
Better checking for invalid OID's in p_query_rpn.
author
Adam Dickmeiss
<adam@indexdata.dk>
Tue, 13 Oct 1998 16:03:37 +0000
(16:03 +0000)
committer
Adam Dickmeiss
<adam@indexdata.dk>
Tue, 13 Oct 1998 16:03:37 +0000
(16:03 +0000)
util/pquery.c
patch
|
blob
|
history
diff --git
a/util/pquery.c
b/util/pquery.c
index
b57b9a5
..
5fedcf1
100644
(file)
--- a/
util/pquery.c
+++ b/
util/pquery.c
@@
-4,7
+4,10
@@
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: pquery.c,v $
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: pquery.c,v $
- * Revision 1.20 1998-03-31 15:13:20 adam
+ * Revision 1.21 1998-10-13 16:03:37 adam
+ * Better checking for invalid OID's in p_query_rpn.
+ *
+ * Revision 1.20 1998/03/31 15:13:20 adam
* Development towards compiled ASN.1.
*
* Revision 1.19 1998/03/05 08:09:03 adam
* Development towards compiled ASN.1.
*
* Revision 1.19 1998/03/05 08:09:03 adam
@@
-99,13
+102,15
@@
static Z_RPNStructure *rpn_structure (struct lex_info *li, ODR o, oid_proto,
static enum oid_value query_oid_getvalbyname (struct lex_info *li)
{
static enum oid_value query_oid_getvalbyname (struct lex_info *li)
{
+ enum oid_value value;
char buf[32];
if (li->lex_len > 31)
return VAL_NONE;
memcpy (buf, li->lex_buf, li->lex_len);
buf[li->lex_len] = '\0';
char buf[32];
if (li->lex_len > 31)
return VAL_NONE;
memcpy (buf, li->lex_buf, li->lex_len);
buf[li->lex_len] = '\0';
- return oid_getvalbyname (buf);
+ value = oid_getvalbyname (buf);
+ return value;
}
static int compare_term (struct lex_info *li, const char *src, size_t off)
}
static int compare_term (struct lex_info *li, const char *src, size_t off)
@@
-421,6
+426,8
@@
static Z_RPNStructure *rpn_structure (struct lex_info *li, ODR o,
(size_t) (cp-li->lex_buf) > li->lex_len)
{
attr_set[num_attr] = query_oid_getvalbyname (li);
(size_t) (cp-li->lex_buf) > li->lex_len)
{
attr_set[num_attr] = query_oid_getvalbyname (li);
+ if (attr_set[num_attr] == VAL_NONE)
+ return NULL;
lex (li);
if (!(cp = strchr (li->lex_buf, '=')))
lex (li);
if (!(cp = strchr (li->lex_buf, '=')))
@@
-495,7
+502,9
@@
Z_RPNQuery *p_query_rpn_mk (ODR o, struct lex_info *li, oid_proto proto,
oset.oclass = CLASS_ATTSET;
oset.value = topSet;
oset.oclass = CLASS_ATTSET;
oset.value = topSet;
- zq->attributeSetId = odr_oiddup (o, oid_ent_to_oid (&oset, oid));
+ if (!oid_ent_to_oid (&oset, oid))
+ return NULL;
+ zq->attributeSetId = odr_oiddup (o, oid);
if (!(zq->RPNStructure = rpn_structure (li, o, proto, 0, 512,
attr_array, attr_set)))
if (!(zq->RPNStructure = rpn_structure (li, o, proto, 0, 512,
attr_array, attr_set)))