r16945: Sync trunk -> 3.0 for 3.0.24 code. Still need
[vlendec/samba-autobuild/.git] / source3 / utils / net_rpc_printer.c
index 8808d549ac591a4ebfe6f2d5e0c6edc86d66704c..50ab50bace33875696fbdd73883543692d7cdd33 100644 (file)
@@ -129,18 +129,23 @@ static void display_reg_value(const char *subkey, REGISTRY_VALUE value)
                break;
 
        case REG_MULTI_SZ: {
-               uint16 *curstr = (uint16 *) value.data_p;
-               uint8 *start = value.data_p;
-               d_printf("\t[%s:%s]: REG_MULTI_SZ:\n", subkey, value.valuename);
-               while ((*curstr != 0) && 
-                      ((uint8 *) curstr < start + value.size)) {
-                       rpcstr_pull(text, curstr, sizeof(text), -1, 
-                                   STR_TERMINATE);
-                       d_printf("%s\n", text);
-                       curstr += strlen(text) + 1;
+               int i, num_values;
+               char **values;
+
+               if (!NT_STATUS_IS_OK(reg_pull_multi_sz(NULL, value.data_p,
+                                                      value.size,
+                                                      &num_values,
+                                                      &values))) {
+                       d_printf("reg_pull_multi_sz failed\n");
+                       break;
+               }
+
+               for (i=0; i<num_values; i++) {
+                       d_printf("%s\n", values[i]);
                }
+               TALLOC_FREE(values);
+               break;
        }
-       break;
 
        default:
                d_printf("\t%s: unknown type %d\n", value.valuename, value.type);