On Mon, 29 Nov 2004 17:35:04 -0500 Gillis, wrote:
GPW> In 5.2.1, on Win2K Pro,
I assume you mean 5.1.2, since there is not 5.2.1.
GPW> I have an agent with code generated from mib2c
GPW> with create-dataset. I can run snmpset with 1 PDU fine, as far as I can
GPW> tell. But if I run it with multiple PDU's on a table with no rows, the
GPW> first time through it creates a row and sets the values fine. But the
GPW> second time, I get an error: "Unhandled exception in snmpd.exe:
GPW> 0xC0000005: Access Violation". Same thing happens if I create the rows in
GPW> code.
Can you try this patch?
Index: agent/helpers/table_dataset.c
===================================================================
RCS file: /cvsroot/net-snmp/net-snmp/agent/helpers/table_dataset.c,v
retrieving revision 5.19.2.3
retrieving revision 5.19.2.4
diff -u -r5.19.2.3 -r5.19.2.4
--- agent/helpers/table_dataset.c 7 Apr 2004 14:57:30 -0000
5.19.2.3+++ agent/helpers/table_dataset.c 21 Oct 2004 18:46:01 -0000
5.19.2.4@@ -451,6 +451,10 @@
(reginfo->rootoid_len + 2);
if (MODE_IS_SET(reqinfo->mode)) {
+ char buf[256]; /* is this reasonable size?? */
+ int rc;
+ size_t len;
+
/*
* use a cached copy of the row for modification
*/
@@ -459,9 +463,27 @@
* cache location: may have been created already by other
* SET requests in the same master request.
*/
+ rc = snprintf(buf, sizeof(buf), "dataset_row_stash:%s:",
+ datatable->table->name);
+ if ((-1 == rc) || (rc >= sizeof(buf))) {
+ snmp_log(LOG_ERR,"%s handler name too long\n",
+ datatable->table->name);
+ netsnmp_set_request_error(reqinfo, request,
+ SNMP_ERR_GENERR);
+ continue;
+ }
+ len = sizeof(buf) - rc;
+ rc = snprint_objid(&buf[rc], len, table_info->index_oid,
+ table_info->index_oid_len);
+ if (-1 == rc) {
+ snmp_log(LOG_ERR,"%s oid or name too long\n",
+ datatable->table->name);
+ netsnmp_set_request_error(reqinfo, request,
+ SNMP_ERR_GENERR);
+ continue;
+ }
stashp = (netsnmp_oid_stash_node **)
- netsnmp_table_get_or_create_row_stash(reqinfo,
- "dataset_row_stash");
+ netsnmp_table_get_or_create_row_stash(reqinfo, buf);
newrowstash
= netsnmp_oid_stash_get_data(*stashp, suffix, suffix_len);
--
Robert Story; NET-SNMP Junkie
Support: <http://www.net-snmp.org/> <irc://irc.freenode.net/#net-snmp>
Archive: <http://sourceforge.net/mailarchive/forum.php?forum=net-snmp-coders>
You are lost in a twisty maze of little standards, all different.
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Net-snmp-coders mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders