- DosSetExtLIBPATH objects to a NULL pointer, but a pointer to a NULL
  string does what is expected (ie unset [BEGIN|END]LIBPATH)

- set the size of the DosQuerySysInfo buffer correctly; it was safe,
  but incorrect (allowing a 1 element overrun)
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index d34756a..879d57e 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -5410,9 +5410,6 @@
     if (stricmp(s1, "BEGINLIBPATH") == 0) {
         APIRET rc;
 
-        if (strlen(s2) == 0)  /* If New Value is an Empty String */
-            s2 = NULL;        /* Then OS/2 API Wants a NULL to Undefine It */
-
         rc = DosSetExtLIBPATH(s2, BEGIN_LIBPATH);
         if (rc != NO_ERROR)
             return os2_error(rc);
@@ -5420,9 +5417,6 @@
     } else if (stricmp(s1, "ENDLIBPATH") == 0) {
         APIRET rc;
 
-        if (strlen(s2) == 0)  /* If New Value is an Empty String */
-            s2 = NULL;        /* Then OS/2 API Wants a NULL to Undefine It */
-
         rc = DosSetExtLIBPATH(s2, END_LIBPATH);
         if (rc != NO_ERROR)
             return os2_error(rc);
@@ -7265,7 +7259,7 @@
     char     *ver, tmp[50];
 
     Py_BEGIN_ALLOW_THREADS
-    rc = DosQuerySysInfo(1, QSV_MAX, &values[1], sizeof(values));
+    rc = DosQuerySysInfo(1L, QSV_MAX, &values[1], sizeof(ULONG) * QSV_MAX);
     Py_END_ALLOW_THREADS
 
     if (rc != NO_ERROR) {