]> git.proxmox.com Git - mirror_smartmontools-debian.git/blobdiff - os_openbsd.cpp
import smartmontools 7.0
[mirror_smartmontools-debian.git] / os_openbsd.cpp
index 896b88d11be42afde167dbe1c3f795ad113e415e..eef9f358dd907006340515d0094e0371d1814954 100644 (file)
@@ -1,25 +1,17 @@
 /*
  * os_openbsd.c
  *
- * Home page of code is: http://smartmontools.sourceforge.net
+ * Home page of code is: http://www.smartmontools.org
  *
- * Copyright (C) 2004-10 David Snyder <smartmontools-support@lists.sourceforge.net>
+ * Copyright (C) 2004-10 David Snyder
  *
- * Derived from os_netbsd.cpp by Sergey Svishchev <smartmontools-support@lists.sourceforge.net>, Copyright (C) 2003-8 
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * You should have received a copy of the GNU General Public License
- * (for example COPYING); if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Derived from os_netbsd.cpp by Sergey Svishchev, Copyright (C) 2003-8
  *
+ * SPDX-License-Identifier: GPL-2.0-or-later
  */
 
 #include "config.h"
-#include "int64.h"
+
 #include "atacmds.h"
 #include "scsicmds.h"
 #include "utility.h"
 
 #include <errno.h>
 
-const char * os_openbsd_cpp_cvsid = "$Id: os_openbsd.cpp 3727 2012-12-13 17:23:06Z samm2 $"
+const char * os_openbsd_cpp_cvsid = "$Id: os_openbsd.cpp 4842 2018-12-02 16:07:26Z chrfranke $"
   OS_OPENBSD_H_CVSID;
 
-/* global variable holding byte count of allocated memory */
-extern long long bytes;
-
 enum warnings {
-  BAD_SMART, NO_3WARE, NO_ARECA, MAX_MSG
+  BAD_SMART, MAX_MSG
 };
 
 /* Utility function for printing warnings */
@@ -44,7 +33,7 @@ printwarning(int msgNo, const char *extra)
   static int printed[] = {0, 0};
   static const char *message[] = {
     "Error: SMART Status command failed.\nPlease get assistance from \n" PACKAGE_HOMEPAGE "\nRegister values returned from SMART Status command are:\n",
-    PACKAGE_STRING " does not currentlly support twe(4) devices (3ware Escalade)\n",
+    PACKAGE_STRING " does not currently support twe(4) devices (3ware Escalade)\n",
   };
 
   if (msgNo >= 0 && msgNo <= MAX_MSG) {
@@ -132,12 +121,17 @@ get_dev_names(char ***names, const char *prefix)
       return -1;
     }
     sprintf(mp[n], "%s%s%c", net_dev_prefix, p, 'a' + getrawpartition());
-    bytes += strlen(mp[n]) + 1;
     n++;
   }
 
-  mp = (char **)realloc(mp, n * (sizeof(char *)));
-  bytes += (n) * (sizeof(char *));
+  char ** tmp = (char **)realloc(mp, n * (sizeof(char *)));
+  if (NULL == tmp) {
+    pout("Out of memory constructing scan device list\n");
+    free(mp);
+    return -1;
+  }
+  else
+    mp = tmp;
   *names = mp;
   return n;
 }
@@ -316,7 +310,8 @@ ata_command_interface(int fd, smart_command_set command, int select, char *data)
 
     unsigned const short normal = WDSMART_CYL, failed = 0x2cf4;
 
-    if ((retval = ioctl(fd, ATAIOCCOMMAND, &req))) {
+    retval = ioctl(fd, ATAIOCCOMMAND, &req);
+    if (retval < 0) {
       perror("Failed command");
       return -1;
     }
@@ -417,9 +412,8 @@ print_smartctl_examples()
   char p;
 
   p = 'a' + getrawpartition();
-  printf("=================================================== SMARTCTL EXAMPLES =====\n\n");
-#ifdef HAVE_GETOPT_LONG
   printf(
+    "=================================================== SMARTCTL EXAMPLES =====\n\n"
     "  smartctl -a /dev/wd0%c                      (Prints all SMART information)\n\n"
     "  smartctl --smart=on --offlineauto=on --saveauto=on /dev/wd0%c\n"
     "                                              (Enables SMART on first disk)\n\n"
@@ -428,15 +422,5 @@ print_smartctl_examples()
     "                                      (Prints Self-Test & Attribute errors)\n",
     p, p, p, p
     );
-#else
-  printf(
-    "  smartctl -a /dev/wd0%c                     (Prints all SMART information)\n"
-    "  smartctl -s on -o on -S on /dev/wd0%c        (Enables SMART on first disk)\n"
-    "  smartctl -t long /dev/wd0%c            (Executes extended disk self-test)\n"
-    "  smartctl -A -l selftest -q errorsonly /dev/wd0%c"
-    "                                      (Prints Self-Test & Attribute errors)\n",
-    p, p, p, p
-    );
-#endif
   return;
 }