]> git.sur5r.net Git - bacula/bacula/commitdiff
Fix bscan bug introduced with serialization change
authorKern Sibbald <kern@sibbald.com>
Tue, 19 Jan 2010 15:27:30 +0000 (16:27 +0100)
committerKern Sibbald <kern@sibbald.com>
Tue, 19 Jan 2010 15:27:30 +0000 (16:27 +0100)
bacula/src/lib/serial.c
bacula/src/lib/serial.h

index 2de4edaf304ac88463f7e846ac8c1a45b03ae009..70d058ce3dd8a4fdbce414fda08c84c97019e4ff 100644 (file)
@@ -170,12 +170,12 @@ void serial_float64(uint8_t * * const ptr, const float64_t v)
     *ptr += sizeof(float64_t);
 }
 
-void serial_string(uint8_t * * const ptr, const char * const str, int max)
+void serial_string(uint8_t * * const ptr, const char * const str)
 {
    int i;                   
    char *dest = (char *)*ptr;
    char *src = (char *)str;
-   for (i=0; i<max && src[i] != 0;  i++) {
+   for (i=0; src[i] != 0;  i++) {
       dest[i] = src[i];
    }
    dest[i++] = 0;                  /* terminate output string */
index 44ab51ed203d917972a1df3e44719e6035e96b36..90fb93b9132af45b2d7c12f5939eef61779228c4 100644 (file)
@@ -41,7 +41,7 @@ extern void serial_int64(uint8_t * * ptr, int64_t v);
 extern void serial_uint64(uint8_t * * const ptr, const uint64_t v);
 extern void serial_btime(uint8_t * * const ptr, const btime_t v);
 extern void serial_float64(uint8_t * * const ptr, const float64_t v);
-extern void serial_string(uint8_t * * const ptr, const char * const str, int max);
+extern void serial_string(uint8_t * * const ptr, const char * const str);
 
 extern int16_t unserial_int16(uint8_t * * const ptr);
 extern uint16_t unserial_uint16(uint8_t * * const ptr);
@@ -125,7 +125,7 @@ extern void unserial_string(uint8_t * * const ptr, char * const str, int max);
 #define ser_buffer(x)   ser_bytes((x), (sizeof (x)))
 
 /* Binary string not requiring serialization */
-#define ser_string(x)   serial_string(&ser_ptr, (x), (int)sizeof(x))
+#define ser_string(x)   serial_string(&ser_ptr, (x))
 
 /*                         Unserialisation                  */
 
@@ -164,7 +164,10 @@ extern void unserial_string(uint8_t * * const ptr, char * const str, int max);
 /*  Binary byte stream not requiring serialisation (length obtained by sizeof)  */
 #define unser_buffer(x)  unser_bytes((x), (sizeof (x)))
 
-/* Binary string not requiring serialization */
-#define unser_string(x) unserial_string(&ser_ptr, (x), (int)sizeof(x))
+/* Binary string not requiring serialization (length obtained from max) */
+#define unser_nstring(x,max) unserial_string(&ser_ptr, (x), (int)(max))
+
+/*  Binary string not requiring serialisation (length obtained by sizeof)  */
+#define unser_string(x) unserial_string(&ser_ptr, (x), sizeof(x))
 
 #endif /* __SERIAL_H_ */