Deprecated Features
- There are no deprecated features in this release.
July 21, 2006
This document provides an overview of the changes made to Select Access 6.1 for Patch 4. It contains important information not included in the manuals or in online help.
In This Version
Installation Notes
Enhancements and Fixes
Known Problems, Limitations, and Workarounds
Documentation Errata
Integration with Other OpenView Solutions
Support
Legal Notices
For the hardware, software, and third-party requirements, see System requirements on page 11 of the HP OpenView Select Access 6.1 Installation Guide.
NOTE:
The Select Access schema file, sa.schema for OpenLDAP has
changed. Some standard objects that are defined by OpenLDAP in the file
nis.schema have been removed from the Select Access
sa.schema file. To use the new file, administrators must
copy the new sa.schema file from the Select Access
schema/openldap directory to the OpenLDAP
schema directory. Administrators must then modify their
slapd.conf file to enable the nis.schema file,
if it is not already included.
To work with OpenLDAP, Select Access 6.1 (and 6.1 Patch 1) required
administrators to disable LDAP schema checking by adding
schemacheck off to the slapd.conf.
Select Access 6.1 Patch 2 and later removes this restriction. It is
recommended that Administrators remove this directive from their
slapd.conf file after applying 6.1 Patch 2 (or a later
patch release).
NOTE: If you have installed 6.1 Patch 2 or later directly over 6.1, then you must regenerate the certificates. If you do not, when you select Clear Validator Cache using Policy BuilderB -> Tools, the message "Validator cannot be reached" appears.
After starting the Administration server setup tool, choose to regenerate certificates. You must regenerate certificates for all connecting components to correspond to the Administration server.
If you have previously installed 6.1 Patch 1, then you do not need to perform this step.
NOTE:If you are using Windows 2003, stop the Windows Management Instrumentation service before installing Select Access. Restart the Windows Management Instrumentation service after Select Access is installed.
NOTE: HP recommends that you always update all detected components on a given host computer as well as components deployed on various hosts on your network. This avoids any unpredictable behaviors that might otherwise occur when varying versions of Select Access components are deployed on your system.
The Installing HP OpenView Select Access 6.1 Patch 4 screen appears and outlines the installation progress of the components you selected to install.
Where:
For example, on Solaris, enter: ./setup_solaris -i console
Patchable components installed on this host computer are identified with a number; patchable components that are not installed on this host are identified with an asterisk (*). HP recommends that you always update all detected components to avoid any unpredictable behaviors that might otherwise occur as a result of an inconsistently applied update.
The following items are fixed in the current software release. To display details about each software fix, click the description. To hide details, click again.
This release also includes all fixes that were contained in 6.1 Patch 1, 6.1 Patch 2, and 6.1 Patch 3.
| Symptom: | Under reasonable load, the servletEnforcer starts logging "no connections in pool" errors. |
|---|---|
| Description: | The Java Enforcer ConnectionPool logic has been rewritten. Now, instead of limiting the maximum size of the pool (which causes connection errors and slow performance), we limit the maximum size of the idle pool. Any thread that requests a Validator connection will get one. When connections are returned to the pool, they will be closed to prevent resource starvation if the idle pool is large enough. |
| Symptom: |
Select Access cannot use a read-only User Store on Active Directory (and probably all other Directory Servers). The policy builder logs a NullPointerException on the java console:
Exception caught in com.hp.ov.selectaccess.policybuilder.MainPanelRemote method:getSubjectTreeData
java.lang.NullPointerException
at com.hp.ov.selectaccess.util.LDAPServer.isCanCreateSubentry(LDAPServer.java:2624)
at com.hp.ov.selectaccess.adminserver.SubjectCache.getCanCreateSubjects(SubjectCache.java:394)
at com.hp.ov.selectaccess.adminserver.SubjectCache.initializeSubjectCacheNode(SubjectCache.java:612)
at com.hp.ov.selectaccess.adminserver.SubjectCache.getSubjectTreeData(SubjectCache.java:1246)
at com.hp.ov.selectaccess.adminserver.MainServer.getSubjectTreeData(MainServer.java:1746)
at sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.hp.ov.selectaccess.simplermi.MethodInvocationHandler.invokeMethod(MethodInvocationHandler.java:199)
at com.hp.ov.selectaccess.simplermi.ServerServlet.doPost(ServerServlet.java:167)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:405)
at org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:622)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:525)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1457)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1409)
at org.mortbay.http.HttpServer.service(HttpServer.java:889)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:829)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:998)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:846)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:345)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:530)
|
|---|---|
| Description: | This defect was previously repaired by a related code change. |
| Symptom: |
Select Access validator configured to use an Oracle Internet Directory as a Policy Store. During normal use, users are suddenly forced to re-authenticated because their cookies are invalid. |
|---|---|
| Description: |
The Oracle Internet Directory can not apply matching rules correctly on attributes with syntax "Octet String"(1.3.6.1.4.1.1466.115.121.1.40) or "Binary""(1.3.6.1.4.1.1466.115.121.1.5). The fix changes nxNonceSecret syntax to "IA5 String"(1.3.6.1.4.1.1466.115.121.1.26) when importing schema into OID, and wraps nonce secrets in BASE64 encoding ssaving/loading data from the LDAP server. |
| Symptom: |
When Identities are contained within Groups (Static or Dynamic), and those Groups are contained within other groups (Static or Dynamic), then the policy grid displayed in the user interfaces does not match the policy enforced by the validator. In an earlier release, the validator was modified so that only Identities can be inherit from groups; groups cannot inherit policy from other groups. This change was made to fix a severe performance problem reported by a customer. |
|---|---|
| Description: |
A configuration switch (in the Custom Settings screen) has been added to allow administrators to select the old behaviour (groups can be members of other groups for policy inheritance) and the new behaviour (policy does not inherit through nested groups). The policy builder has been modified to display the appropriate policy inheritanced based on the setting of this global configuration switch. |
| Symptom: | When using OpenLDAP as a policy store, Delegated Administration inheritance fails to work properly. Sometimes permissions do not inherit at all, and sometimes they inherit too far into the tree. |
|---|---|
| Description: |
The problem is caused by the OpenLDAP directory server's quoting rules for "," within a DN. OpenLDAP appears to have changed their quoting rules across several releases, explaining why this works (for example) with 6.1 against OpenLDAP 2.0.27, but fails when using OpenLDAP 2.2.27. The adminserver has been modified to adapt to the OpenLDAP quoting rules properly. |
| Symptom: |
in a weblogic cluster environment, the Select Access Weblogic integration is sending badly formatted XML queries to the validator. The validator rejects the queries, and the enforcer returns the error to Weblogic, causing Weblogic internal processes to fail. The badly formatted data is a copy of the POST data sent by the WL client. It is not being properly converted to UTF-8 (since it is really binary data) before being sent to the validator. |
|---|---|
| Description: | The Weblogic integration was reading the HTTP POST data for all requests. None of our other enforcers do so. The weblogic plugin now only reads POST data for login pages, matching the other enforcers and preventing this problem from occurring. |
| Symptom: | The customer cannot configure their adminserver. The setup tool displays error messages, including "Could not log on to the directory server" and "Cannot read policy data from directory server". This occurs even though the directory server is up and running, and can be contacted from other LDAP clients. |
|---|---|
| Description: |
The problem is within the code that detects the Active Directory version. The code was erroneously searching the entire directory for entries containing the attribute "operatingSystemVersion". This has two problems: the entry set returned can be large, and the entries returned are for hosts in the domain, not for the domain controller itself. The adminserver has been patched to find the specific entry in the directory that corresponds to the Active Directory server when determining the server's version. |
| Symptom: |
This is an enhancement request to have SA password reset unlock an account (on Active Directory or ADAM) that has been locked by the Windows account management system. Active Directory can be configured to lock an account after failed login attempts. This is indepedent of Select Access Account Management, which uses a private facility that is identical on all directory servers. SA Password reset knows to unlock an account that has been locked by SA Account management. However, When an account has been locked by Active Directory (outside of Select Access), SA Password Reset does not remove the Windows account lockout. |
|---|---|
| Description: |
The adminserver has been patched to remove the Active Directory account lockout when the user password is changed. To enable this, the administrator must enable the "accountLockoutTime" attribute for Select Access, and then delegate control over the attribute to Password Reset users. |
| Symptom: | A validator configured for more than 8 threads will crash at the first enforcer connection. |
|---|---|
| Description: | There was a fault in the logic to handle thread-local storage for the new per-thread LDAP connections; the code did not reset the pool size when the validator thread limit was increased. |
| Symptom: |
Customer has a validator plugin that after authenticating users, redirects to another page from within the validator. When using IIS, validator authentication cookies are not set in the browser when the validator returns the redirect. When browser arrives at the destination page, the user is not authenticated because the cookies have not been set. This does work with Apache, because Apache *always* sets validator cookies on every response. |
|---|---|
| Description: | We now add any nonces from the validator reply when doing redirects. |
| Symptom: | Under heavy load, the error handling logic in the Java enforcer causes the entire enforcer to start returning errors to all callers. |
|---|---|
| Description: |
The enforcer logic has been rewritten to:
|
| Symptom: |
If the java logging subsystem encounters certain errors (e.g. File not found) and throws an exception, the exception is thrown all the way through the logging and enforcer libraries and is caught by the top-level of the Enforcer, which then returns an ERROR result to the caller (usually resulting in an error page being displayed to the end user.) Exceptions should be caught inside the Logger subsystem instead. |
|---|---|
| Description: | Java enforcer now will check the existence of the logger destination folder and try to create it if not found. Java enforcer also catches all exceptions from the Logger. |
| Symptom: |
The policy builder "Identity Location" screen allows configuration of an SSL-protected LDAP server. The validator can optionally configure the CA certificate used to verify the LDAP server's SSL certificate. Unfortunately, the Certificate Import function on the Identity Location screen does not work; it reports that the CA certificate is invalid. |
|---|---|
| Description: |
The policy builder applet running inside the browser did not properly initialize the crypto libraries. This prevented the policy builder from loading and parsing certificates. The Policy builder code has been patched to properly initialize the crypto library at startup. |
The following items were fixed in previous patches. The fixes are also included in this patch, and are listed here for completeness.
| Symptom: | When a delegated administrator edits the membership list of a group and saves the changes, Any members of the group over whom the administrator does not have full access rights are also removed from the group's membership list. |
|---|---|
| Description: | The code in the adminserver that filters out undelegated group members before displaying the group was not restoring the filtered members before updating the directory server. The adminserver code has been patched to correctly update the group membership list. |
| Symptom: | Opening the group properties screen is very slow for reasonably sized groups (several hundred members); so is switching tabs within the screen. |
|---|---|
| Description: |
The problem is a combination of two things: 1) the Adminserver fetches the group membership list, then fetches the full LDAP entry for each individual group member. Since this extra information isn't required, there's no reason to fetch it when opening a group. 2) the cache invalidation interval is short enough that by the time the group properties screen is opened, the cache has been invalidated, so switching to the group membership tab means that the same refresh operation (group membership list, then all individual group members) is performed *again*. The adminserver has been patched to load the initial group properties quickly. When the membership tab is selected, if the group is large enough the user is asked to enter a filter string to display a subset of the group membership. |
| Symptom: | Custom Resource Discovery plugins do not appear to work. After installing 6.1 Patch 1 it is possible to upload them to the adminserver, but after running a custom discovery plugin no resources are added to the tree, and no error messages are reported to the administrator or logged anywhere. |
|---|---|
| Description: | The adminserver was modified to call plugins properly, and to make them executable on UNIX systems. |
| Symptom: | When the validator on UNIX systems is shut down it does not report that it is shutting down it just exits. This is an issue for sites that want to track shut downs and start ups of the validator for auditing reasons. |
|---|---|
| Description: |
The original log message was only output if the main validator thread tried to exit before all of the worker threads. On different threading implementations these steps happen in different orders, and so the message does not always appear. Two messages are added to the validator log stream, both at Operation / INFO level:
In both cases, '%s' is replaced with the validator ID (validator.example.com:9988) |
| Symptom: | Customer reported unacceptable performance in a proof-of-concept test. C&I analysis and customer logs reveal that there is a serialisation problem in the validator. All LDAP operations appear to be serialised, instead of being performed in parallel as would be expected. |
|---|---|
| Description: |
The single LDAP connection has been replaced with an LDAP "pool" (really thread-local storage) mechanism, which will remove the serialisation. Performance testing shows reasonable improvement under heavy load (30% in long trials). However, the surprising result is that performance of basic login operations is now much more consistent between tests. Prior to these changes we would see widely varying performance data for the same test run. Presumably random timing differences would change the locking interactions; since those interactions are now gone, performance is consistently high. |
| Symptom: |
In a weblogic cluster environment, the Select Access Weblogic integration is sending badly formatted XML queries to the validator. The validator rejects the queries, and the enforcer returns the error to Weblogic, causing Weblogic internal processes to fail. The badly formatted data is a copy of the POST data sent by the WL client. It is not being properly converted to UTF-8 (since it is really binary data) before being sent to the validator. |
|---|---|
| Description: |
The Weblogic integration was reading the HTTP POST data. None of our other enforcers do so. This code has been removed from the Weblogic plugin. |
| Symptom: | The Select Access enforcer and Sharepoint integration are installed. During normal use, the end-user sees a Sharepoint or OWA login page (not the Select Access login page) even though they are already logged in. |
|---|---|
| Description: | A defect was discovered in the handling of the encrypted password data that would, rarely, cause truncation of the data. This would account for the intermittent nature of this problem after the previous fix. |
| Symptom: |
Use of OpenLDAP as a policy store or user store requires that the OpenLDAP administrator disable schema checking. This can cause problems with other parts of the directory, so Select Access needs to function with OpenLDAP schema checking enabled. |
|---|---|
| Description: |
Select Access does not write the OU attribute into the object when it is creating LDAP entries with OU as the child RDN. This is a violation of the OpenLDAP schema checks, though none of our other directory servers complain about it. Some objects that are already defined in the nis.schema file shipped with OpenLDAP were removed from the sa.schema file. Administrators must now manually enable the nis.schema file, if it is not already included. |
| Symptom: |
In certain high-load situations, customers may notice a large number of LDAP MODify operations logged by their directory server, coming from the validator. These typically show up in rapid succession, and often fail (either "attribute value doesn't exist" on a delete, or "attribute value already exists" on an add.) These only show up for user accounts that have account management and/or password management enabled. The validator is attempting to update fields like "failed login count" or "last login time", but is generating incorrect MODify requests because the validator cache is out-of-sync with the directory. Update: In some cases, the validator will also return a DENY instead of an ALLOW for otherwise valid login attempts, because it repeatedly tries (and fails) to modify the LDAP account management attributes. |
|---|---|
| Description: |
The validator has been fixed to perform cache invalidations where needed, to keep the cache in sync with LDAP, and to replace several LDAP_MOD_DELETE/LDAP_MOD_ADD pairs with more reliable LDAP_MOD_REPLACE operations. |
| Symptom: |
The Select Access enforcer treats "http://example.com/dir/page.html;parameter=value" and "http://example.com/dir/page.html" as two different resources, and so policy cannot properly be assigned to "page.html". The enforcer currently removes ";jsessionid=value" from URLs; this is an enhancement request to strip all semicolon-delimited paramters from URLs. |
|---|---|
| Description: |
Select Access enforcer has been enhanced to (conditionally) remove semicolon-delimited parameters. The settings for this can be found on the "Enforcer Tuning Parameters" screen in the setuptool and PolicyBuilder component configuration screens. |
| Symptom: |
A single "service" entry in the Select Access Policy can have multiple names. The most common source of this would be an SSL-enabled webserver, which could serve the same content to both SSL and non-SSL clients. In this case, the service would be named both "http://host.example.com:80" and "https://host.example.com:443". Another example would be an environment where a service is accessed by both short and log names. If enforcers are sending a steady stream of queries using both (all) names for a service, the validator will continuously reload the entire rule tree for that service into the cache, instead of finding the previously loaded copy. This would be seen in a DEBUG level validator log, or in validator TRACE messages, or in the LDAP server logs. |
|---|---|
| Description: |
validator logic has been updated to prevent the unecessary cache reloads. |
| Symptom: |
Select Access on RedHat AS 3.0 cannot be configured using OpenLDAP 2.0.27; errors are reported by the adminserver, and it will not start. |
|---|---|
| Description: |
schemacheck can now be on by default. Tested 2.0.27 on RH AS 3.0, plus 2.2.27. The schema change requires nis.schema to be loaded due to RedHat using it as a default schema, removed the nis attrs/oc's from our sa.schema and use the ones from nis.schema |
| Symptom: |
The java enforcer logs an exception and refuses to work on some installations of Windows 2003 Server. The Operating System ID string has changed from "windows 2003 server" to "windows server 2003", which caused the OS matching code in the enforcer to fail. |
|---|---|
| Description: |
The OS match code in the enforcer is redundant, since we do not support Windows 95/98, and so it has been removed entirely. |
| Symptom: |
When using a single service that has multiple names (eg. http://SOAM:8080/ and https://SOAM:8443/), validator performance is very slow (10s of transactions per second instead of 100s of transactions per second). |
|---|---|
| Description: |
The problem was that the validator cache of services was not correctly indexed. Accessing the validator with requests for the same service with two different service names would cause the validator service cache to thrash, severely affecting performance. The cache has been fixed to properly index all names for a service, eliminating the thrashing. |
| Symptom: |
When using the Windows Sharepoint integration, a user will be prompted for their username and password after several minutes of continuous use, even though their Select Access credentials have not expired. Specifically, the problem occurs when the Select Access cookie is updated. |
|---|---|
| Description: | The problem was that the stored password information was not properly updated when a new Select Access authentication cookie was issued. This meant that when the new cookie was sent by the client, the stored password could not be retrieved. The code has been updated to properly update stored password data. |
| Symptom: |
The customer is using two-factor authentication; certificates and username password. They would like to have the certificate plugin fetch the userID from the LDAP record, and send it back to the enforcer so that it can be filled into a password login form; that way, the end-user cannot attempt to use a userid that doesn't match their certificate. There is no security advantage to doing this; the validator properly rejects authentication requests for two different users in multi-auth rules. This is purely a end-user usablility enhancement. |
|---|---|
| Description: |
certificate plugin is modified to add the userid (extracted from the user's LDAP record) to the "user" field of the form_data blob in the validator response object. This will allow any client-side authentication forms to pick up the userid automatically, if they desire. |
| PROBLEM: | A Java exception is generated when attempting to import resources via a file. |
|---|---|
| FIX: | This problem has been resolved. |
| PROBLEM: | There is a severe memory leak in the Policy Validator. Each incoming query leaks an amount of memory equal to the size of the XML query sent from the Enforcer. |
|---|---|
| CAUSE: | The code in WorkQueue.cpp that logged queries was copying the query and sanitizing it (removing cleartext passwords) but not freeing the copy. |
| FIX: | This problem has been fixed. |
| PROBLEM: | All C++ enforcers can deadlock when logging to the Secure Audit Server is enabled, and an error occurs while connecting to any validator. |
|---|---|
| CAUSE: | Recursive lock allocation in the enforcer's SSL utility code |
| FIX: | The deadlock has been removed from the enforcer. |
| PROBLEM: | With Audit Signing turned on, no signatures are sent to a database and no records of any type are sent to a text log file. |
|---|---|
| CAUSE: | The Java version 1.4.2_06 used in SelectAccess 6.1 has a broken Xalan bundled inside rt.jar. |
| FIX: | This is resolved by forcing Java to use the SA version of xalan.jar by doing the following:
|
| PROBLEM: | Customers may encounter certificate verification errors when using 6.1. When the new certificate API issues certificates, it incorrectly formats DNs containing -, _, and other special characters. They should be written out using ASN.1 TelexString (T61String), but are instead written using PrintableString (which is not allowed to contain those characters). In some situations this causes certificate verifications to fail. Binary comparison of the DNs fails because of the ASN.1 type mis-match. |
|---|---|
| CAUSE: | These errors are caused by a defect in the ASN.1 formatting of certificate DNs in the cryptography toolkit shipped witn 6.1. |
| FIX: | A new version of the cryptography toolkit is included in this patch. However, after applying the patch, the administrator must re-issue all intercomponent validation certificates. |
| PROBLEM: | When installing the Enforcer on Windows 2000, the IIS Enforcer gives the error Enforcer Plugin/E: (00319) Failed to enumerate data in Metabase and the IIS server crashes. |
|---|---|
| FIX: | IIS Plugin code has been re-worked to handle large metabase data. |
| PROBLEM: | Under moderate to heavy load, and using certificate-based authentication, the validator will log an "unknown exception error" on Windows and become unresponsive. (Presumably it will core-dump on UNIX systems). |
|---|---|
| CAUSE: | There were some locks missing from the validator's certificate cache. This defect was introduced during a fix for a memory leak in the validator when certificates and/or CRLs in the directory were updated. |
| FIX: | The validator has been patched so that it does not crash when performing certificate verifications. |
| PROBLEM: | The validator trusted auth plugin logs at ERROR level "Enforcer client did not send authentication data required by the Federation Plugin". This is logged even if another auth server (such as certificate) is defined higher up the SelectAuth priority list and has authenticated a user. This should be logged at INFO or DEBUG level. |
|---|---|
| FIX: | Log messages in the trusted plugin were removed, demoted, or reworded to improve the audit and diagnostic flow in the plugin. |
| PROBLEM: | The Apache 2 enforcer doesn't send the srcIP property in the validator query. This property is required by the ipdomain decider. Policy Rules that include IP address or Domain restrictions will not work in this case. |
|---|---|
| FIX: | The Apache2 Enforcer has been changed to call the correct Apache2 API routines to obtain source and destination addressing information. |
| PROBLEM: | Signed logs from the Secure Audit server cannot be verified using the Report Viewer because of cryptography restrictions in the JRE. |
|---|---|
| CAUSE: | The JRE in Select Access is a limited version. |
| FIX: | Policy Builder users need to download and install the "Unlimited Strength Java(TM) Cryptography Extension (JCE) Policy Files for the Java(TM) 2 SDK, Standard Edition, v 1.4.2 (J2SDK)" to support the signed audit trail. |
The following items are listed incorrectly in the documentation and could not be fixed prior to the software release. To display details about each documentation error, click the error summary. To hide details, click again.
| LOCATION: | Chapter 2 in the HP OpenView Select Access 6.1 Installation Guide. |
|---|---|
| ERROR: | This chapter erroneously includes details for upgrading from a version of Select Access previous to Select Access 5.0. |
| CORRECTION: | Upgrading from a version previous to 5.0 is not supported. |
| LOCATION: | N/A |
|---|---|
| ERROR: | An undocumented filename and path required for the Password Dictionary feature. |
| CORRECTION: | If you are using a password policy that allows users to self-manage their passwords, and want to use a password dictionary to support that policy, you must name the file dictionary.txt and save it to the <SA_install_path>\bin folder. Otherwise, Select Access cannot find the appropriate file. |
You can integrate Select Access with the following OpenView products:
Please visit the HP OpenView support web site at:
http://www.hp.com/managementsoftware/support
This web site provides contact information and details about the products, services, and support that HP OpenView offers.
HP OpenView online software support provides customer self-solve capabilities. It provides a fast and efficient way to access interactive technical support tools needed to manage your business. As a valuable support customer, you can benefit by being able to:
To register for an HP Passport ID, go to the following URL:
http://www.managementsoftware.hp.com/passport-registration.html
To view release notes and other documentation:
The Product manuals search window opens. It is located at:
NOTE: To view files in PDF format (*.pdf), Adobe Acrobat Reader must be installed on your system. To download Adobe Acrobat Reader, go to the following URL:
©Copyright 2005,2006 Hewlett-Packard Development Company, L.P.
The information contained herein is subject to change without notice.
The only warranties for HP products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein.